gridview第一列为复选框,id:ckb1
gridview下面有另一个复选框,id:ckbSelectAll
根据ckbSelectAll的状态使ckb1保持全选或全不选;
代码:
前台:
<asp:CheckBox ID="ckbSelectAll" runat="server" EnableViewState="False" OnCheckedChanged="CheckBox2_CheckedChanged" Text="全选(回车确认)" Font-Size="10pt" AutoPostBack="True" />后台:
protected void CheckBox2_CheckedChanged(object sender, EventArgs e)
{
foreach (GridViewRow row in GridView1.Rows)
((CheckBox)row.FindControl("ckb1")).Checked = ckbSelectAll.Checked;
ckbSelectAll.Text = ckbSelectAll.Checked ? "全选(回车确认)" : "取消全选(回车确认)";
}现在的状况是:
选中ckbSelectAll 后ckb1能全部选中,取消选择后,ckb1还是保持选择
gridview下面有另一个复选框,id:ckbSelectAll
根据ckbSelectAll的状态使ckb1保持全选或全不选;
代码:
前台:
<asp:CheckBox ID="ckbSelectAll" runat="server" EnableViewState="False" OnCheckedChanged="CheckBox2_CheckedChanged" Text="全选(回车确认)" Font-Size="10pt" AutoPostBack="True" />后台:
protected void CheckBox2_CheckedChanged(object sender, EventArgs e)
{
foreach (GridViewRow row in GridView1.Rows)
((CheckBox)row.FindControl("ckb1")).Checked = ckbSelectAll.Checked;
ckbSelectAll.Text = ckbSelectAll.Checked ? "全选(回车确认)" : "取消全选(回车确认)";
}现在的状况是:
选中ckbSelectAll 后ckb1能全部选中,取消选择后,ckb1还是保持选择
用:
response.write
<asp:GridView ID="grdArticle" runat="server" width="100%" DataKeyNames="Title"
EmptyDataText="没有数据" AllowPaging="True" AutoGenerateColumns="False"
BorderColor="#336699" BorderStyle="Solid" BorderWidth="1px" Font-Size="12pt"
PageSize="15" >
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="chkBox" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="文章ID">
<ItemTemplate>
<%#Eval("ID") %>'
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="作者ID">
<ItemTemplate>
<%#Eval("AuthorID") %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="文章标题">
<ItemTemplate>
<asp:TextBox ID="txtTitle" runat="server" Text='<%#Eval("Title") %>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:CheckBox ID="chkTest" runat="server" AutoPostBack="True"
oncheckedchanged="chkTest_CheckedChanged" Text="全选" /> protected void chkTest_CheckedChanged(object sender, EventArgs e)
{
chkTest.Text = chkTest.Checked ? "取消全选" : "全选";
foreach(GridViewRow row in grdArticle.Rows)
{
((CheckBox)row.Cells[0].FindControl("chkBox")).Checked = chkTest.Checked;
}
}
我认为你应该使用它的Onclick点击事件,因为浏览器的原因,CheckBox取消不会被回发
function SelectAllCheckBox()
{
for(i=0;i<form.elements.length;i++)
{
if(form.elements[i].type=="checkbox")
{
form.elements[i].checked=true;
}
}
}
function ReSelectCheckBox()
{
var form =document.forms[0];
for(i=0;i<form.elements.length;i++)
{
if(form.elements[i].type=="checkbox")
{
if(form.elements[i].checked)
form.elements[i].checked=false;
else
form.elements[i].checked=true;
}
}
}
for (int i = 0; i < dgrdMessage.Items.Count; i++)
{
CheckBox chkSelect = (CheckBox)dgrdMessage.Items[i].FindControl("chkSelect");
if (chkSelect.Checked)
{
MessageBll.DeleteData(3, Convert.ToInt32(dgrdMessage.DataKeys[dgrdMessage.Items[i].ItemIndex]));
}
}
把EnableViewState="False" 去掉试试。