多个复选框的asp网格选择全部 [英] asp grid with multiple check box select all
问题描述
我有两个项目模板的网格
template1 with header [select all]复选框
和项目模板包含复选框
template2 with header [select all2]复选框
和项目模板包含复选框2
i需要一个java脚本
当我选择[全选]复选框时,需要选中所有复选框那个项目模板
当我选择[select all2]复选框时,它需要选择该项目模板中的所有复选框2
谢谢q
I have grid with two item templates
template1 with header [select all] check box
and item template consists of check boxes
template2 with header [select all2] check box
and item template consists of check boxes2
i need a java script
when i select [select all] check box it needs to select all check boxs in that item template
and when i select [select all2] check box it needs to select all check boxs in that item template2
thank q
推荐答案
< asp:gridview id =gridrunat =serverxmlns:asp =#unknown>
< columns> < asp:templatefield>
< headertemplate>
< asp:checkbox id =OneCheckBoxAllrunat =servertext =[Check All] previously Assigned >
onclick =checkAll(''oneCheckBox'',this); />
< / headertemplate>
< itemtemplate>
< asp:checkbox id =oneCheckBoxrunat =servertext =<%#Eval(one)%> />
< asp:templatefield>
< headertemplate>
< asp:checkbox id =TwoCheckBoxAllrunat =servertext =[Check All] Currently assigned>
onclick =checkAll(''TwoCheckBox'',this); />
< / headertemplate>
< itemtemplate>
< asp:checkbox id =TwoCheckBoxrunat =servertext =<%#Eval(two)%> />
以上是有多个复选框的网格
javascript是
< script type =text / javascript>
函数checkAll(fieldsname,field)
{
var n = aspnetForm.elements.length;
for(var i = 0; i< n; i ++)>
{
if(aspnetForm.elements [i] .id.indexOf(fieldsname)!= - 1)
{
aspnetForm.elements [i ] .checked = field.checked;
}
}
}
< / script>
<asp:gridview id="grid" runat="server" xmlns:asp="#unknown">
<columns> <asp:templatefield>
<headertemplate>
<asp:checkbox id="OneCheckBoxAll" runat="server" text="[Check All] Previously Assigned">
onclick="checkAll(''oneCheckBox'',this);" />
</headertemplate>
<itemtemplate>
<asp:checkbox id="oneCheckBox" runat="server" text="<%#Eval("one")%>" />
<asp:templatefield>
<headertemplate>
<asp:checkbox id="TwoCheckBoxAll" runat="server" text="[Check All] Currently Assigned">
onclick="checkAll(''TwoCheckBox'',this);" />
</headertemplate>
<itemtemplate>
<asp:checkbox id="TwoCheckBox" runat="server" text="<%#Eval("two")%>" />
above is grid with multiple checkboxes
javascript is
<script type="text/javascript">
function checkAll(fieldsname,field)
{
var n=aspnetForm.elements.length;
for (var i=0;i<n;i++)>
{
if (aspnetForm.elements[i].id.indexOf(fieldsname) !=-1)
{
aspnetForm.elements[i].checked = field.checked;
}
}
}
</script>
这里有一个我用过的样本检查并根据你的要求修改
here is a sample i''ve used check it and modify as per your requirement
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="empid" DataSourceID="ObjectDataSource1">
<Columns>
<asp:TemplateField HeaderText="empid" SortExpression="empid">
<EditItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("empid") %>'></asp:Label>
</EditItemTemplate>
<HeaderTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="True"
oncheckedchanged="CheckBox1_CheckedChanged" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBox2" runat="server" Text='<%# Eval("empid") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="empname" SortExpression="empname">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("empname") %>'></asp:TextBox>
</EditItemTemplate>
<HeaderTemplate>
<asp:CheckBox ID="CheckBox4" runat="server" AutoPostBack="True"
oncheckedchanged="CheckBox4_CheckedChanged" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBox3" runat="server" Text='<%# Eval("empname") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="age" HeaderText="age" SortExpression="age" />
</Columns>
</asp:GridView>
C#代码
C# code for that
protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
CheckBox cb1selall = GridView1.HeaderRow.FindControl("CheckBox1") as CheckBox;
for (int i = 0; i < GridView1.Rows.Count; i++)
{
CheckBox cb1 = GridView1.Rows[i].FindControl("CheckBox2") as CheckBox;
if (cb1selall.Checked)
{
cb1.Checked = true;
}
else
{
cb1.Checked = false;
}
}
}
protected void CheckBox4_CheckedChanged(object sender, EventArgs e)
{
CheckBox cb2selall = GridView1.HeaderRow.FindControl("CheckBox4") as CheckBox;
for (int i = 0; i < GridView1.Rows.Count; i++)
{
CheckBox cb1 = GridView1.Rows[i].FindControl("CheckBox3") as CheckBox;
if (cb2selall.Checked)
{
cb1.Checked = true;
}
else
{
cb1.Checked = false;
}
}
}
这篇关于多个复选框的asp网格选择全部的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!