在網路開發中,經常遇到需要使用ASP.NET與JavaScript聯合進行控制的情況。在本篇中,將使用DataGrid進行資料繫結,使用Javascript控制當選中其中的checkbox時,該行顏色改變。
首先,在頁面中建立一個DataGrid控制項,並設定其模板。
以下是引用片段:
| < asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False"> < Columns> < asp:TemplateColumn> < ItemTemplate> < asp:CheckBox id="checkbox1" Runat ="server">< /asp:CheckBox> < asp:Label runat="server" Text='< %# DataBinder.Eval(Container, "DataItem") %>'>< /asp:Label> < /ItemTemplate> < /asp:TemplateColumn> < /Columns> < /asp:DataGrid> |
第二,在頁面中的< head>< /head>中編寫JavaScript指令碼函數,進行CheckBox的判斷和顏色改變的控制。
以下是引用片段:
| < script> function checkme(obj,tr){ if(obj.checked) tr.style.backgroundColor='blue'; else tr.style.backgroundColor=''; } < /script> |
第三,在Page_Load事件中為DataGrid綁定資料,並關聯CheckBox的JavaScript指令碼。
以下是引用片段:
| private void Page_Load(object sender, System.EventArgs e) { // Put user code to initialize the page here if(!IsPostBack) { databind(); } } private void databind() { ArrayList arr=new ArrayList(); arr.Add("新聞綜合"); arr.Add("綜藝"); arr.Add("電影"); arr.Add("教育"); arr.Add("戲劇"); arr.Add("軍事"); arr.Add("體育"); DataGrid1.DataSource=arr; DataGrid1.DataBind(); int i; for(i=0;i< DataGrid1.Items.Count;i++){ CheckBox cb; cb=(CheckBox)DataGrid1.Items[i].FindControl("checkbox1"); DataGrid1.Items[i].Attributes.Add("id","tr" + i.ToString()); cb.Attributes.Add("onclick","checkme(this,tr" + i.ToString() + ");"); } } |
第四,完成之後運行程式。程式運行後,會在DataGrid控制項的每行前顯示一個CheckBox控制項,選擇該控制項,該行背景顏色變藍色,取消選擇,該行顏色恢複初始狀態。