2009年4月20日 星期一

一個關於ASP.NET RadioButtonList 控制元件操作上的注意事項

問題說明:
在ASP.NET的環境中操作RadioButtonList 控制元件時,如果在伺服端預設SelectedIndex時;例如設定了SelectedIndex=0,當使用者於網頁上點選第一項以外的選項時,SelectedIndexChanged的事件可以正常運作,但時回點第一項選項時發現無法啟動SelectedIndexChanged的事件。
也就是說在伺服端預設的SelectedIndex後,會導致該選項沒有SelectedIndexChanged的事件。

解決方法:
必須於網頁OnLoad或OnFocus時,使用Javascript定義預設的選項,不能在伺服端預設選項。
下面是我的作法:
window.onfocus = function() {
 var ctrl = document.getElementById("<%=RadioButtonList1.ClientID%>" + "_0");
 ctrl.checked = true;
};

沒有留言: