0

我有一个 DropDownList 在其 OnSelectedIndexChanged 事件中触发一些服务器端数据绑定。

<asp:DropDownList ID="ddlGroup" runat="server" 
     AutoPostBack="True" OnSelectedIndexChanged="SelectGroup" />

在页面的其他地方,一些 JavaScript 会打开一个弹出窗口。填写并提交弹出窗口后,我想使用 JavaScriptOnSelectedIndexChanged在开启页面中触发该事件。我发现了一些其他类似的代码:

    if (window.opener != null ) {
    var cf = window.opener.document.forms['aspnetForm'];
        if (!cf) {
            cf =  window.opener.document.aspnetForm;
        }
        cf.__EVENTTARGET.value = "prAdded";
        cf.__EVENTARGUMENT.value = "winClosed";
        cf.submit(); 
    }

我认为这就是我正在寻找的东西,但我不确定 EVENTTARGET 和 EVENTARGUMENT 部分应该包含什么,或者即使我根本不需要它们。我想专门OnSelectedIndexChangedddlGroup. 这可能/实用吗?

第二个问题:我可以在弹出窗口中运行服务器端代码后刷新父页面吗?

4

1 回答 1

1

嗯,你可以这样做,但我只是使用 __doPostback() 代替。这将 __EVENTTARGET 和 __EVENTARGUMENT 设置为两个参数,并假设您的第一个参数是 UpdatePanel 的 UniqueID,只会导致该 UpdatePanel 刷新。

因此,您可以进行设置,以便刷新更新面板执行您想要发生的事情,或者您可以在回发时检查这些值——......Request.Form["__EVENTTARGET"]然后从那里开始。

于 2011-02-18T16:38:26.217 回答