checkbox结合gridview使用问题,请帮忙,谢谢!
问一下各位,我在gridview里面第一列加了一个模板列,并放置了一个id="check"的Checkbox,我想选中某行的checkbox后,这一行后改变该行的颜色,再点一下不选中时,该行颜色恢复。
事件触发我放在check_CheckedChanged 中了。
网上有说通过 js脚本直接写的,不用放在后台页中,可我找了,没找到我想实现的功能。请大家帮忙,(js脚本或者后台页都行)谢谢!
我的部分代码如下所示:
.aspx页面
- C# code
<asp:GridView ID="dgck" runat="server" AutoGenerateColumns="False" Width ="2200px" Font-Size="X-Small" DataKeyNames="客户号" AllowSorting="True" > <RowStyle HorizontalAlign="Center" Height="20px" /> <Columns> <asp:TemplateField HeaderText="选中一行"> <EditItemTemplate> <asp:CheckBox ID="CheckBox1" runat="server" /> </EditItemTemplate> <ItemTemplate> <asp:CheckBox ID="check" runat="server" OnCheckedChanged="check_CheckedChanged" /> </ItemTemplate> </asp:TemplateField> </Columns> <HeaderStyle HorizontalAlign="Center" Font-Size="X-Small" ForeColor="Black" /> <AlternatingRowStyle Font-Size="X-Small" /> </asp:GridView>
- C# code
public void dgck_bind()//绑定gridview数据.{..............} protected void check_CheckedChanged(object sender, EventArgs e)//checkbox触发事件 { for (int i = 0; i < dgck.Rows.Count; i++) { CheckBox cb = (CheckBox)dgck.Rows[i].FindControl("check");//找到id="dgck"的gridview的模板中id="check"的checkbox,并转换成CheckBox类型。 DataControlFieldCell dc = (DataControlFieldCell)cb.Parent;//得到checkbox所在的单元格 GridViewRow gr = (GridViewRow)dc.Parent;//得到checkbox所在的行 if (gr.Checked == true)//如果点击checkbox打勾 { //不知道怎么写了 } else //如果取消打勾或者没有打勾 { //不知道怎么写了 } } }
[解决办法]
参考:
http://dotnet.aspx.cc/article/ff130c7f-3650-4da6-8943-8aa4af3e3459/read.aspx
基本上,一般的.net问题,孟老大的页面上都能找到一二
http://dotnet.aspx.cc/
[解决办法]
http://www.cnblogs.com/ajaxworld/archive/2007/07/08/810571.aspx
这里讲的很详细,你可以看看
[解决办法]
自己的,你可以看看
<asp:CheckBox ID="check" runat="server" AutoPostBack="true" OnCheckedChanged="check_CheckedChanged" />
- C# code
protected void GridViewShow_RowDataBound(object sender, GridViewRowEventArgs e) { CheckBox cbx = (CheckBox)e.Row.FindControl("CheckBox1"); if (cbx != null) { if(ViewState["rowIndex"] == null) { ViewState["rowIndex"] = 0 ; } cbx.CssClass = Convert.ToString(ViewState["rowIndex"]); ViewState["rowIndex"] = Convert.ToInt32(ViewState["rowIndex"]) + 1; } } protected void CheckBox1_CheckedChanged(object sender, EventArgs e) { GridBackColor = this.GridViewShow.BackColor;//取得grid 的色 CheckBox cbx = (CheckBox)sender ; if (cbx.Checked) { this.GridViewShow.Rows[Convert.ToInt32(cbx.CssClass)].BackColor = Color.Red;//改你要的色 } else { this.GridViewShow.Rows[Convert.ToInt32(cbx.CssClass)].BackColor = GridBackColor } }