1. 程式人生 > >ASP.NET與JavaScript聯合操作之一 選擇DataGrid中的CheckBox控制元件後該行背景變色

ASP.NET與JavaScript聯合操作之一 選擇DataGrid中的CheckBox控制元件後該行背景變色

在網路開發中,經常遇到需要使用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控制元件,選擇該控制元件,該行背景顏色變藍色,取消選擇,該行顏色恢復初始狀態。