我有一个DropDownList,在其OnSelectedIndexChanged事件中触发一些服务器端数据绑定。
<asp:DropDownList ID="ddlGroup" runat="server"
AutoPostBack="True" OnSelectedIndexChanged="SelectGroup" />
在页面的其他地方,一些JavaScript打开一个弹出窗口。填写并提交弹出窗口后,我想使用JavaScript在开启者页面中触发OnSelectedIndexChanged
事件。我找到了一些类似的其他代码:
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部分应该采用什么,或者即使我需要这些部分。我想专门为OnSelectedIndexChanged
触发ddlGroup
事件处理程序。这可能/实用吗?
次要问题:我是否可以在弹出窗口中运行服务器端代码后刷新父页面?
答案 0 :(得分:1)
呃,你可以这样做,但我只是使用__doPostback()代替。这将__EVENTTARGET和__EVENTARGUMENT设置为两个参数,并假设您的第一个参数是UpdatePanel的UniqueID,只会导致UpdatePanel刷新。
因此,您可以进行设置,以便更新updatepanel以执行您想要发生的事情,或者您可以在回发时检查这些值 - Request.Form["__EVENTTARGET"]
...然后从那里开始。