【问题标题】:How to call TextChanged event of parent page, using javascript from Child Page?如何使用子页面中的javascript调用父页面的TextChanged事件?
【发布时间】:2014-04-01 05:54:15
【问题描述】:

我在子弹出窗口上使用 javascript 在父页面上设置文本框的值,但这不会触发父文本框的 textchanged 事件。我相信它需要回发才能触发 textchanged 事件。所以我就这么做了。。

儿童弹窗

<script type="text/javascript">
        function updateParent(val, controlname) {
            window.opener.document.getElementById(controlname).value = val;
            __doPostBack(document.getElementById(controlname), '');//Added this line
        }

    </script>

但它仍然无法正常工作。即使这样做,我也担心它会再次重新打开弹出窗口,因为它会导致回发。有任何想法吗?尽量保持简单。

【问题讨论】:

  • 你想什么时候触发 textchanged 事件?是在子窗口关闭后还是在子窗口中输入并确认值后?
  • @SystemOnline 我在 ChildPopUp 上有一个带有 linkBut​​tons 的 GridView,只要用户单击其中的任何一个,就会关闭子窗口并设置父级上的文本框值。所以是的,即使子窗口关闭,我也想触发这个文本框。
  • 我不太确定,但您可以执行以下操作 - 在父页面的隐藏字段中设置值,而不是直接在文本框中。当子窗口关闭并且焦点回到父窗口时,检查隐藏字段的值并将其设置为文本框并清空隐藏字段值。这将触发文本框的 textchanged 事件。

标签: c# javascript jquery asp.net


【解决方案1】:

试试这个

父窗口上的Javascript。

<script language="Javascript" type="text/javascript"> 
  function domycallback(controlname,val) 
   { 
        document.getElementById(controlname).value = val;
        __doPostBack(document.getElementById(controlname), '');
        return false; 
   } 
</script>

子窗口上的Javascript。

window.opener.domycallback(); 

【讨论】:

  • 这是做什么的?设置父页面TextBox的文本?我已经能够更改父页面的文本框值,但我无法触发其 textchanged 事件。
  • 我做到了。什么都没发生。我在 Child PopUp 的控制台上得到这个.. Uncaught TypeError: Cannot set property 'value' of null
  • @Arbaaz jsfiddle 请链接
  • 对不起,我不能给你 jsfiddle 链接。我在父页面和子页面上都有 GridViews。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-01
  • 2013-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多