在網(wǎng)絡(luò)開發(fā)中,,經(jīng)常遇到需要使用ASP.NET與JavaScript聯(lián)合進(jìn)行控制的情況。在本篇中,將使用DataGrid進(jìn)行數(shù)據(jù)綁定,,使用Javascript控制當(dāng)選中其中的checkbox時(shí),,該行顏色改變,。
首先,,在頁面中創(chuàng)建一個(gè)DataGrid控件,并設(shè)置其模板,。
以下是引用片段: <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腳本函數(shù),進(jìn)行CheckBox的判斷和顏色改變的控制,。
以下是引用片段: <script> function checkme(obj,tr){ if(obj.checked) tr.style.backgroundColor=‘blue‘; else tr.style.backgroundColor=‘‘; } </script> |
第三,在Page_Load事件中為DataGrid綁定數(shù)據(jù),,并關(guān)聯(lián)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() + ");"); } } |
第四,完成之后運(yùn)行程序,。程序運(yùn)行后,,會(huì)在DataGrid控件的每行前顯示一個(gè)CheckBox控件,選擇該控件,,該行背景顏色變藍(lán)色,,取消選擇,該行顏色恢復(fù)初始狀態(tài),。