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

DataGrid中打勾全部选中的方法

2013年04月04日 ⁄ 综合 ⁄ 共 2519字 ⁄ 字号 评论关闭
html代码
<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;
    }

   }

来源于LengYubing’s Blog

抱歉!评论已关闭.