直接在GridView中编辑CheckBox控件

今天遇到一个在 GridView直接对CheckBox控件进行编辑的问题...花了一点时间终于还是搞定了...拿出来和有兴趣的朋友分享.这样做可以不用进入编辑页面而直接操作一些简单数据处理.这样可以节省管理人员的时间.具体情况如下:

前后代码:<asp:GridView ID="GridView1" SkinID="BlueGridView" runat="server"  AllowPaging="True" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" DataKeyNames="Comment_ID" >
        <Columns>
            <asp:TemplateField HeaderText="选择">
                <ItemTemplate>
                    <asp:CheckBox ID="CheckBox2" runat="server" />
                </ItemTemplate>
            </asp:TemplateField>
            <asp:HyperLinkField DataNavigateUrlFields="Arti_PagePath" DataNavigateUrlFormatString="~/www/StaticPage/{0}"
                DataTextField="Arti_Title" HeaderText="文章标题" />
            <asp:BoundField DataField="Comment_ID" HeaderText="评论ID" />
            <asp:BoundField DataField="Comment_UserName" HeaderText="评论者" SortExpression="Comment_UserName" />
            <asp:CommandField HeaderText="评论内容" ShowSelectButton="True" SelectText="查看" />
            <asp:TemplateField HeaderText="是否显示">
                <ItemTemplate>
                    <asp:CheckBox ID="CheckBox1" runat="server"  Checked='<%# Bind("Comment_Visible") %>' OnCheckedChanged="CheckBox1_CheckedChanged" AutoPostBack="True" />
                </ItemTemplate>
            </asp:TemplateField>
            <asp:BoundField DataField="Comment_Time" HeaderText="评论时间" SortExpression="Comment_Time" />
            <asp:HyperLinkField DataNavigateUrlFields="Comment_ID,Arti_ID" DataNavigateUrlFormatString="Edit_Comment.aspx?Comment_ID={0}&amp;Arti_ID={1}"
                HeaderText="编辑" Text="编辑" />
            <asp:TemplateField HeaderText="删除" ShowHeader="False">
                <ItemTemplate>
                    <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" OnClientClick=" javascript:return confirm('你确认要删除吗?')"
                        CommandName="Delete" Text="删除"></asp:LinkButton>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>

中间打红色的部分是主要内容,在Gridview中添加一个TemplateField并绑定相应的控件.

后台代码:

protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
    {
        foreach (GridViewRow row in GridView1.Rows)
        {
            CheckBox CheckBox1 = (CheckBox)row.Cells[4].FindControl("CheckBox1");
            SqlConnection conn = Fun.InitConn();
            SqlCommand comm = new SqlCommand();
            comm.Connection = conn;
            comm.CommandText = "update Comment set Comment_Visible = '" + CheckBox1.Checked.ToString() + "' where Comment_ID= '" + row.Cells[1].Text + "' ";
            conn.Open();
            comm.ExecuteNonQuery();
            conn.Close();
        }

    }

记住一定要把CheckBox控件的AutoPostBack属性设置为True

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值