现在的位置: 首页 > 综合 > 正文

GridView控件的选择功能,代码实现CheckBox控件的全选、反选以及取消

2012年08月15日 ⁄ 综合 ⁄ 共 2304字 ⁄ 字号 评论关闭

提及GridView控件的选择功能,那肯定是和CheckBox控件有着亲密的联系,这是毋庸置疑的。选择功能,最重要的就是方便用户的操作,比如批量删除。

GridView绑定后台数据库,第一列绑定CheckBox选择控件,标识ID为“DeleteThis”,便于选择。绑定的代码在gridview<Columns></Columns>之间,前台示例代码如下:

<asp:TemplateField ControlStyle-Width="30" HeaderText="选择" runat="server">
                                <ItemTemplate>
                                    <asp:CheckBox ID="DeleteThis" runat="server" />
                                </ItemTemplate>
                                <ControlStyle Width="30px"></ControlStyle>
                            </asp:TemplateField>

为了便于更好的理解,直观的看待解说,上传前台的整体设计界面如下:

 界面左下方就是今天所说的内容,用全选框、反选框以及取消按钮来控制gridview的第一列选择框。前台设计代码示例如下:

<table border="0" cellspacing="0" cellpadding="1" style="width:100%;">
    <tr>
    <td style="width:1px"></td>
     <td align="left">
    <b>选择:</b>
     <asp:CheckBox ID="chkbAll" runat="server" Text="全选" Width="47px" 
            AutoPostBack="True" oncheckedchanged="chkbAll_CheckedChanged"/>
     <asp:CheckBox ID="chkbUnCheck" runat="server" Text="反选" Width="47px" 
            AutoPostBack="True" oncheckedchanged="chkbUnCheck_CheckedChanged"/>
     <asp:Button ID="btnCancel" runat="server" Text="取消" Width="47px" onclick="btnCancel_Click" 
            />
    </td>
    <td align="right">
   
        <asp:Button ID="btnDelete" runat="server" Text="删除" 
            Width="47px" onclick="btnDelete_Click" />
    </td>
   
    <td style="width:1px"></td>
    </tr>
    </table><br />

全选、反选前台设计

 其实,今天所说的选择功能有各种各样的实现方法,有js的,有jquery的等等,你有会的也有不会的,我们要做的就是根据自己的语言的能力实现页面所需的功能,业余时间可以去琢磨其他的方式。。。

要想学好一门语言,那就得不断的接触,不断的学习,不断的坚持,不断的思悟方可。

废话不多说,言归正传,cs后台代码实现选择功能的代码如下:

    /// <summary>
    /// 全选
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void chkbAll_CheckedChanged(object sender, EventArgs e)
    {
        for (int i = 0; i < gridView.Rows.Count; i++)
        {
            CheckBox chb = (CheckBox)gridView.Rows[i].FindControl("DeleteThis");
            if (chkbAll.Checked)
            {
                chb.Checked = true;
            }
            else
            {
                chb.Checked = false;
            }
        }
        chkbUnCheck.Checked = false;
    }
    /// <summary>
    /// 反选
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void chkbUnCheck_CheckedChanged(object sender, EventArgs e)
    {
        for (int i = 0; i < gridView.Rows.Count; i++)
        {
            CheckBox chb = (CheckBox)gridView.Rows[i].FindControl("DeleteThis");
            if (chb.Checked == true)
            {
                chb.Checked = false;
            }
            else
            {
                chb.Checked = true;
            }
        }
        chkbAll.Checked = false;
    }
    /// <summary>
    /// 取消
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnCancel_Click(object sender, EventArgs e)
    {
        chkbAll.Checked = false;
        chkbUnCheck.Checked = false;
        for (int i = 0; i < gridView.Rows.Count; i++)
        {
            CheckBox chb = (CheckBox)gridView.Rows[i].FindControl("DeleteThis");
            chb.Checked = false;
        }
    }

代码给你了,如有需要,好好理解理解,如有不足之处,请多提意见。。。

一家之言,仅供参考!!!

抱歉!评论已关闭.