我有一個ASP.Net RadioButtonList控件與AutoPostBack設置爲true。我也有一個OnSelectedIndexChanged函數,每當用戶改變選擇時都會調用它。最後,用戶需要提供請求該控制信息,所以有我默認選擇當用戶到達上page--ASP.Net AJAX UpdatePanel無法觸發SelectedIndexChanged事件
<asp:RadioButtonList ID="rblHighestDegree" runat="server" AutoPostBack="true"
onselectedindexchanged="rblHighestDegree_SelectedIndexChanged">
<asp:listitem Runat="server" Text="Master's Degree" Selected="True" />
<asp:listitem Runat="server" Text="Doctorate" />
</asp:RadioButtonList>
在代碼示例如上所述,當從默認用戶切換選擇(例如「碩士學位」)到不同的選項(例如「博士學位」),然後觸發SelectedIndexChanged事件。然後,如果用戶改變主意並隨後選擇原始默認選項,則再次觸發SelectedIndexChanged事件。這是按照預期和預期進行的。
我有一個第二控制其啓用或停用,這取決於選擇的上方,在代碼隱藏...
<asp:ScriptManager ID="scriptmanager1" runat="server" />
<asp:UpdatePanel ID="updatepanel1" runat="server">
<ContentTemplate>
<asp:RadioButtonList ID="rdlYearsOfStudy" runat="server" Enabled="false">
<asp:listitem Runat="server" Text="Less than 3 years" />
<asp:listitem Runat="server" Text="3 - 4 years" />
<asp:listitem Runat="server" Text="5 - 6 years" />
</asp:RadioButtonList>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="rblHighestDegree" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
時遇到的問題僅僅後我放置發生這是ASP.Net AJAX UpdatePanel中的第二個控件,用於啓用異步回發(如上所示)。一旦我這樣做了,原始的RadioButtonList控件將只會回發,當我選擇一個ListView時,默認情況下,當用戶到達頁面時選擇而不是。如果用戶隨後選擇原始默認選擇,則回發不會發生。
要澄清,如果我回發沒有將適用的第二個控件放置在ASP.Net AJAX UpdatePanel中,則無論用戶選擇哪個RadioButtonList ListItem,SelectedIndexChanged都可以工作。另一方面,當我在UpdatePanel中放置一個控件來應用AsyncPostBackTrigger之後,回發只發生在非默認ListItems的選擇上。
可能與此相關的更多信息是,我正在使用Microsoft Visual Studio 2008進行編碼,並且我正在使用的UpdatePanel控件是Microsoft AJAX Libary(而不是ASP.NET AJAX Control Toolkit)的一部分。
我將不勝感激與如何讓ASP.Net AJAX的工作,使我可以得到SelectedIndexChanged事件觸發時,用戶選擇默認或非默認的ListItems在RadioButtonList。爲了記錄,我嘗試在page_load事件中設置RadioButtonList默認選擇,但它沒有幫助。
在此先感謝您的幫助!
請注意,我也嘗試刪除在aspx頁面上定義的觸發器,而是在page_load事件中註冊了RadioButtonList控件:「scriptmanager1.RegisterPostBackControl(rblHighestDegree);」不幸的是,這種方法導致了我在上面抱怨的完全相同的行爲。 – cjo30080
如果您查看生成的HTML,您會看到默認選定的廣播沒有設置爲調用__doPostBack的onclick。 –