首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

checkbox结合gridview使用有关问题,请帮忙,多谢

2012-02-01 
checkbox结合gridview使用问题,请帮忙,谢谢!问一下各位,我在gridview里面第一列加了一个模板列,并放置了一

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        }    } 

热点排行