在DataGrid的各行中有checkbox控件,选中该 checkbox,该行即改变颜色: 你的要求应该是用javascript实现,但是datagrid服务器控件,不刷新怎么能改变颜色?可以刷新的话就好做一些,可以用datagrid的selectedchange事件,然后在绑定数据的时候设定颜色,我的想法. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Dim item As DataGridItem '表示 DataGrid控件中的项(行) For Each item In mainGrid.Items Dim ISCheck As CheckBox ISCheck = Item.FindControl("是否") if ISCheck.Checked then 加入改变颜色代码 End If Next item 要改变颜色是可以的,但不刷新页面只能用javascript等脚本语言了。那样的话,还不如用js直接操作table来方便。 给你写一个示例,自己运行后看看:test.aspx------------------------------------<%@Page debug=true%><%@Import Namespace="System.Data"%><%@Import Namespace="System.IO"%><script language="C#" runat="server">void Page_Load(object src,EventArgs e){DataTable table=new DataTable();table.Columns.Add(new DataColumn("addr",typeof(string)));table.Columns.Add(new DataColumn("name",typeof(string)));DataRow row;for(int i=0;i<10;i++){row=table.NewRow();if(i%3==0)row["addr"]=null;elserow["addr"]="addr "+i.ToString();row["name"]="name "+i.ToString();table.Rows.Add(row);}grid.DataSource=table;grid.DataBind();}void BindAddr(object src,DataGridItemEventArgs e){if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem){CheckBox box=(CheckBox)e.Item.FindControl("checkbox1");if(box!=null){string index=(e.Item.ItemIndex+1).ToString();string gridid=grid.ClientID;box.Attributes.Add("onclick","if(this.children[0].checked)document.all."+gridid+".rows["+index+"].style.backgroundColor=\'#969696\';else{document.all."+gridid+".rows["+index+"].style.backgroundColor=\'#ffffff\';}");}}}</script><HTML><HEAD><TITLE> Webdiyer 制造:) (www.webdiyer.com) </TITLE><META NAME="Generator" CONTENT="EditPlus"><META NAME="Author" CONTENT="Webdiyer"></HEAD><BODY><form runat="server"><asp:DataGrid runat="server" id="grid" autogenerateColumns=false OnItemDataBound="BindAddr" width="300"><Columns><asp:HyperLinkColumn runat="server" DataTextField="name" DataNavigateUrlField="name" DataNavigateUrlFormatString="test.aspx?id={0}" HeaderText="链接"/><asp:TemplateColumn HeaderText="改变颜色"><ItemTemplate><asp:CheckBox runat="server" id="checkbox1"/></ItemTemplate></asp:TemplateColumn></Columns></asp:DataGrid></form></BODY></HTML> webdiyer(陕北吴旗娃):谢谢你!一个小改动:if(this.checked) Girdview 合并单元格 按日期合并 [color=#FF0000]●●●●购物网站,多个用户同时买一个商品的问题●●●●[/color] ---在线急等! 各位兄弟,帮忙解决一个小问题,谢谢! .NET 如何连接 SAP请各位高手给点代码看看 repeater加分页,怎么封装成控件? ASP中DropDownList实现下拉和手输 问个关于类似搜索引擎的问题(如何高亮显示)!高手请进~ 各位大虾来帮帮小弟 girdview 大量数据的问题 关于名称空间引用的问题 小女子请教一个问题 在ASP.NET中实现对Word文档内容的关键字检索!!!!!
For Each item In mainGrid.Items
Dim ISCheck As CheckBox
ISCheck = Item.FindControl("是否")
if ISCheck.Checked then
加入改变颜色代码
End If
Next item
那样的话,还不如用js直接操作table来方便。
------------------------------------
<%@Page debug=true%>
<%@Import Namespace="System.Data"%>
<%@Import Namespace="System.IO"%>
<script language="C#" runat="server">
void Page_Load(object src,EventArgs e){
DataTable table=new DataTable();
table.Columns.Add(new DataColumn("addr",typeof(string)));
table.Columns.Add(new DataColumn("name",typeof(string)));
DataRow row;
for(int i=0;i<10;i++){
row=table.NewRow();
if(i%3==0)
row["addr"]=null;
else
row["addr"]="addr "+i.ToString();
row["name"]="name "+i.ToString();
table.Rows.Add(row);
}
grid.DataSource=table;
grid.DataBind();
}void BindAddr(object src,DataGridItemEventArgs e){
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem){
CheckBox box=(CheckBox)e.Item.FindControl("checkbox1");
if(box!=null){
string index=(e.Item.ItemIndex+1).ToString();
string gridid=grid.ClientID;
box.Attributes.Add("onclick","if(this.children[0].checked)document.all."+gridid+".rows["+index+"].style.backgroundColor=\'#969696\';else{document.all."+gridid+".rows["+index+"].style.backgroundColor=\'#ffffff\';}");
}
}
}
</script>
<HTML><HEAD>
<TITLE> Webdiyer 制造:) (www.webdiyer.com) </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="Webdiyer">
</HEAD><BODY>
<form runat="server">
<asp:DataGrid runat="server" id="grid" autogenerateColumns=false OnItemDataBound="BindAddr" width="300">
<Columns>
<asp:HyperLinkColumn runat="server" DataTextField="name" DataNavigateUrlField="name" DataNavigateUrlFormatString="test.aspx?id={0}" HeaderText="链接"/>
<asp:TemplateColumn HeaderText="改变颜色">
<ItemTemplate>
<asp:CheckBox runat="server" id="checkbox1"/>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</form></BODY></HTML>