概述:在asp.net中的使用dategrid,在dategrid中添加復選框並實現復選框checkbox的單選功能,在選擇的過程中,通過點擊復選框能夠觸發事件,比如,點擊復選框checkbox時,在textbox中顯示選中的值等等。
功能一:復選框checkbox單選:
借助js實現。
步驟一:添加復選框checkbox列;
1 <asp:TemplateColumn> 2 <ItemTemplate> 3 <asp:CheckBox ID="chkSelect" runat="server"> 4 </asp:CheckBox> 5 </ItemTemplate> 6 </asp:TemplateColumn>
步驟二:將如下js代碼放到前台界面;
1 <script language="javascript" type="text/javascript"> 2 function SetCheckBoxState() {//復選框單選 3 var dom = document.all; 4 var el = event.srcElement; 5 if (el.tagName == "INPUT" && el.type.toLowerCase() == "checkbox") { 6 for (i = 0; i < dom.length; i++) { 7 if (dom[i].tagName == "INPUT" && dom[i].type.toLowerCase() == "checkbox") { 8 dom[i].checked = false; 9 } 10 } 11 } 12 el.checked = !el.checked; 13 } 14 </script>
步驟三:
在ItemDataBound事件中將js方法添加到復選框checkbox上;
1 protected void gridPlan_ItemDataBound(object sender, DataGridItemEventArgs e) 2 { 3 CheckBox chkSelect; 4 chkSelect = (CheckBox)e.Item.FindControl("chkSelect"); 5 chkSelect.Attributes.Add("OnClick", "SetCheckBoxState()"); 6 }
通過上述三步,即可實現復選框checkbox的單選功能。
功能二:單選框checkbox事件:
步驟一:在前台checkbox中添加如下代碼:
就是添加AutoPostBack="True" OnCheckedChanged="TranChecked"兩個屬性。
1 <asp:CheckBox ID="chkSelect" AutoPostBack="True" OnCheckedChanged="TranChecked" runat="server"></asp:CheckBox></ItemTemplate>
在后台添加如下代碼:
1 protected void TranChecked(object sender, EventArgs e) 2 { 3 。。。想要實現的功能 4 5 }
通過上述兩步即可實現復選框checkbox事件。
以上功能,是本人在工作中需要實現的功能,通過不斷的嘗試最終成功實現,如果你有更好的方法或者我的實現存在問題,歡迎指教!
