在DataGrid页眉上添加全选的CheckBox控件

翻译|其它|编辑:郝浩|2007-03-14 10:44:04.000|阅读 1211 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

 很简单的方法,就是用js实现:
 
 页面:
 
 <asp:datagrid id="dgUserList" runat="server" Width="640px" BorderColor="White" PagerStyle-HorizontalAlign="Right"
 AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False">
 <AlternatingItemStyle BackColor="#F5F5F5"></AlternatingItemStyle>
 <ItemStyle HorizontalAlign="Center"></ItemStyle>
 <HeaderStyle HorizontalAlign="Center" ForeColor="White" BackColor="#4A95FD" Height="8"></HeaderStyle>
 <PagerStyle HorizontalAlign="Right" Mode="NumericPages"></PagerStyle>
 <Columns>
 <asp:TemplateColumn>
 <HeaderTemplate>
 <asp:CheckBox id="chkAll" runat="server"></asp:CheckBox>
 </HeaderTemplate>
 <ItemTemplate>
 <asp:CheckBox id="chkItem" runat="server"></asp:CheckBox>
 </ItemTemplate>
 </asp:TemplateColumn>
 <asp:BoundColumn DataField="id" HeaderText="序号"></asp:BoundColumn>
 <asp:BoundColumn DataField="username" HeaderText="用户名"></asp:BoundColumn>
 <asp:BoundColumn DataField="workno" HeaderText="工号"></asp:BoundColumn>
 <asp:BoundColumn DataField="dept" HeaderText="部门"></asp:BoundColumn>
 </Columns>
 <PagerStyle Visible="False" HorizontalAlign="Right" Mode="NumericPages"></PagerStyle>
 </asp:datagrid>
 
 
 
 
 
 后台代码:
 
 private void dgUserList_PreRender(object sender, System.EventArgs e)
 {
     foreach (DataGridItem item in dgUserList.Controls[0].Controls)
      {
 
        if (item.ItemType == ListItemType.Header)
 
        {
 
            CheckBox chkAll=(CheckBox)item.FindControl("chkAll");
 
            System.Text.StringBuilder strScript = new System.Text.StringBuilder("<script language='javascript'> \n");
 
            strScript.Append(" function checkStatus() { \n");
 
            strScript.Append(" var bAll = true; \n");
 
            strScript.Append(" bAll = document.all('" + chkAll.ClientID + "').checked; \n");
 
 
            for(int i=0; i<dgUserList.Items.Count ; i++)
 
            {
 
                strScript.Append(" document.all('" + dgUserList.Items[i].Cells[0].FindControl("chkItem").ClientID + "').checked = bAll; \n");
 
            }
 
            strScript.Append(" } \n");
 
            strScript.Append("</script> \n");
 
 
            if(!Page.IsClientScriptBlockRegistered("checkStatus"))
 
                Page.RegisterClientScriptBlock("checkStatus",strScript.ToString());
 
 
                    chkAll.Attributes.Add("onclick","checkStatus()");
 
            return;
 }

标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP