GridView 中添加CheckBox取值问题

我是新手,第一次写blog.是我自己在做项目时遇到的问题以及解决方法、记录下来。希望对遇到同样问题的人有点帮助!也请大家多多指教!

前台代码:

  <asp:GridView ID="GridviewDeptAuditList" AutoGenerateColumns="false" runat="server"
            GridLines="none" Width="100%"
            <AlternatingRowStyle CssClass="alt" />
            <Columns>
                <asp:TemplateField ItemStyle-Width="6%">
                    <HeaderTemplate>
                        <asp:CheckBox ID="selectAll" runat="server" onclick="getAllCheckBox(this)" />
                        <span>全选</span>
                    </HeaderTemplate>
                    <ItemTemplate>
                        <asp:CheckBox ID="itemSelect" runat="server" />
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField ItemStyle-Width="5%">
                    <HeaderTemplate>
                        查看</HeaderTemplate>
                    <ItemTemplate>
                        <a href='<%#GetAllUrl(Eval("ID")) %>'>查看</a>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField HeaderText="流程名称" DataField="WorkFlowName" ItemStyle-Width="14%" />
                <asp:BoundField HeaderText="子流程名称" DataField="SubWorkflowName" ItemStyle-Width="14%" />
            </Columns>
        </asp:GridView>

js实现全选效果:

 <script type="text/javascript">
        function getAllCheckBox(checkAll) {
            var items = document.getElementsByTagName("input");
            for (i = 0; i < items.length; i++) {
                if (items[i].type == "checkbox") {
                    items[i].checked = checkAll.checked;
                }
            }
        }
    </script>

 

后台代码:

//注意:如果是在page_load里绑定GridView,一定要加上(!Page.IsPostBack),不然取不到值的。我就是在这上面吃了亏。

 protected void Page_Load(object sender, EventArgs e)     

    {            

        this.EnableProgressBar = false;

                if (!Page.IsPostBack)        

                       {           

                             BindGridView();

                       }      

   }

public void BindGridView()

{

                this.Gridview1.DataSource = dataSource;
                this.Gridview1.DataKeyNames = new string[] { "ID" };
                this.Gridview1t.DataBind();

}

 取值方法:

 protected void BtnDeny_Click(object sender, EventArgs e)        

{          

        // 取值 

          for (int i = 0; i < GridviewDeptAuditList.Rows.Count; i++)              

         {                  

             CheckBox chb = (CheckBox)Gridview1.Rows[i].FindControl("itemSelect");             

            if (chb.Checked)              

             {                    

               keys += GridviewDeptAuditList.DataKeys[i].Value.ToString() + ",";              

             }              

        }

}

 

 

posted @ 2014-04-13 18:23  莫 忘  阅读(368)  评论(0编辑  收藏  举报