ASP.NET与JavaScript操作CheckBox控件
[作者]:菩提树下的杨过 [来源]:互联网 [收录时间]:2007-9-9 11:07:39
  在网络开发中,经常遇到需要使用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控件,选择该控件,该行背景颜色变蓝色,取消选择,该行颜色恢复初始状态。