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

王朝asp·作者佚名  2006-01-09
宽屏版  字体: |||超大  

很简单的方法,就是用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;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有