2011-02-18 51 views
0

我有一個DropDownList,它在OnSelectedIndexChanged事件中觸發了一些服務器端數據綁定。ASP.NET:以編程方式在window.opener中用JavaScript激發服務器端事件

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

在頁面的其他地方,某些JavaScript會打開一個彈出窗口。當彈出窗口被填寫並提交時,我想使用JavaScript在opener頁面中觸發這個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部分,或者即使我需要那些在所有。我想專門爲ddlGroup開火OnSelectedIndexChanged事件處理程序。這可能/實際嗎?

第二個問題:我可以使父頁面刷新後,我彈出的服務器端代碼?

回答

1

呃,你可以這樣做,但我只是使用__doPostback()來代替。這將__EVENTTARGET和__EVENTARGUMENT設置爲這兩個參數,並假設您的第一個參數是UpdatePanel的UniqueID,只會導致UpdatePanel刷新。

所以要麼你可以設置一些東西,讓刷新updatepanel做你想要發生的事情,或者你可以在postback上檢查這些值 - Request.Form["__EVENTTARGET"] ...並從那裏開始。

+0

謝謝,我會給這個鏡頭,並接受它是否有效。 – 2011-02-18 20:01:23

相關問題