选择DataGrid中的CheckBox控件后该行背景变色

在网络开发中,经常遇到需要使用ASP.NET与JavaScript联合进行控制的情况。在本篇中,将使用DataGrid进行数据绑定,使用Javascript控制当选中其中的checkbox时,该行颜色改变。

首先,在页面中创建一个DataGrid控件,并设置其模板。

 1<asp:datagrid autogeneratecolumns="False" id="DataGrid1" runat="server">
 2<columns>
 3<asp:templatecolumn>
 4<itemtemplate>
 5<asp:checkbox id="checkbox1" runat="server"></asp:checkbox>
 6<asp:label runat="server" text='```
 7# DataBinder.Eval(Container, "DataItem") 
 8```'></asp:label>
 9</itemtemplate>
10</asp:templatecolumn>
11</columns>
12</asp:datagrid>

第二,在页面中的

1<head></head>

中编写JavaScript脚本函数,进行CheckBox的判断和颜色改变的控制。

1<script>   
2function checkme(obj,tr){   
3if(obj.checked)   
4tr.style.backgroundColor='blue';   
5else   
6tr.style.backgroundColor='';   
7}   
8</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控件,选择该控件,该行背景颜色变蓝色,取消选择,该行颜色恢复初始状态。

Published At
Categories with Web编程
Tagged with
comments powered by Disqus