C# 选中复选框列表中的所有复选框
我的网页上有一个C# 选中复选框列表中的所有复选框,c#,asp.net,checkbox,checkboxlist,C#,Asp.net,Checkbox,Checkboxlist,我的网页上有一个复选框和一个复选框列表。 如果选中了复选框,则应选中复选框列表中的所有复选框,如果未选中复选框,则同样应取消选中复选框中的所有复选框 .aspx代码 <asp:CheckBoxList ID="CheckBoxList1" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow"> <asp:ListItem>Item A</asp
复选框
和一个复选框
列表。如果选中了
复选框
,则应选中复选框列表
中的所有复选框
,如果未选中复选框
,则同样应取消选中复选框
中的所有复选框
.aspx代码
<asp:CheckBoxList ID="CheckBoxList1" runat="server"
RepeatDirection="Horizontal" RepeatLayout="Flow">
<asp:ListItem>Item A</asp:ListItem>
<asp:ListItem>Item B</asp:ListItem>
<asp:ListItem>Item C</asp:ListItem>
<asp:ListItem Selected="True">Item D</asp:ListItem>
<asp:ListItem>Item E</asp:ListItem>
<asp:ListItem>Item F</asp:ListItem>
<asp:ListItem>Item G</asp:ListItem>
</asp:CheckBoxList>
<asp:CheckBox ID="allChkBox" Text="Select all" runat="server"
oncheckedchanged="allChkBox_CheckedChanged" />
我已经有一段时间没有涉足ASP.NET了,但是每次请求时,您的prevSelection
字段都将初始化为false
。该值不会在请求之间持久化。因此,您需要将其存储在视图状态或缓存中,并从那里将其加载到事件处理程序中,或者,更好的是,将方法更改为如下所示:
protected void allChkBox_CheckedChanged(object sender, EventArgs e)
{
foreach (ListItem chkitem in CheckBoxList1.Items)
{
chkitem.Selected = allChkBox.Selected;
}
}
我已经有一段时间没有涉足ASP.NET了,但是每次请求时,您的prevSelection
字段都将初始化为false
。该值不会在请求之间持久化。因此,您需要将其存储在视图状态或缓存中,并从那里将其加载到事件处理程序中,或者,更好的是,将方法更改为如下所示:
protected void allChkBox_CheckedChanged(object sender, EventArgs e)
{
foreach (ListItem chkitem in CheckBoxList1.Items)
{
chkitem.Selected = allChkBox.Selected;
}
}
我更喜欢使用客户端脚本来实现类似的功能,这样您的页面就不必进行回发
如果这是一种可能性,尝试在单击时启动javascript函数来执行循环并选择。。。差不多
<script type="text/javascript">
checked=false;
function checkedAll (frm1) {
var aa= document.getElementById('frm1');
if (checked == false)
{
checked = true
}
else
{
checked = false
}
for (var i =0; i < aa.elements.length; i++)
{
if(aa.elements[i].type == 'checkbox') {
aa.elements[i].checked = checked;
}
}
}
</script>
选中=错误;
功能检查全部(frm1){
var aa=document.getElementById('frm1');
如果(选中==false)
{
选中=真
}
其他的
{
选中=错误
}
对于(var i=0;i
我更喜欢将客户端脚本用于类似的内容,这样您的页面就不必进行回发
如果这是一种可能性,尝试在单击时启动javascript函数来执行循环并选择。。。差不多
<script type="text/javascript">
checked=false;
function checkedAll (frm1) {
var aa= document.getElementById('frm1');
if (checked == false)
{
checked = true
}
else
{
checked = false
}
for (var i =0; i < aa.elements.length; i++)
{
if(aa.elements[i].type == 'checkbox') {
aa.elements[i].checked = checked;
}
}
}
</script>
选中=错误;
功能检查全部(frm1){
var aa=document.getElementById('frm1');
如果(选中==false)
{
选中=真
}
其他的
{
选中=错误
}
对于(var i=0;i
与其在函数外使用变量,不如使用复选框本身:
protected void allChkBox_CheckedChanged(object sender, EventArgs e)
{
CheckBox chkbox = sender;
foreach (ListItem chkitem in CheckBoxList1.Items)
{
chkitem.Selected = chkbox.Selected;
}
}
与其在函数外部使用变量,不如使用复选框本身:
protected void allChkBox_CheckedChanged(object sender, EventArgs e)
{
CheckBox chkbox = sender;
foreach (ListItem chkitem in CheckBoxList1.Items)
{
chkitem.Selected = chkbox.Selected;
}
}
你可以用linq这样做
var allChecked = (from ListItem item in CheckBoxList1.Items
where item.Selected
select int.Parse(item.Value)).ToList();
var all = (from ListItem item in CheckBoxList1.Items
select int.Parse(item.Value)).ToList();
你可以用linq这样做
var allChecked = (from ListItem item in CheckBoxList1.Items
where item.Selected
select int.Parse(item.Value)).ToList();
var all = (from ListItem item in CheckBoxList1.Items
select int.Parse(item.Value)).ToList();
函数CheckUnCheckAll()
{
var list=document.getElementById(“”);
var chklist=list.getElementsByTagName(“输入”);
对于(var i=0;i函数CheckUnCheckAll()
{
var list=document.getElementById(“”);
var chklist=list.getElementsByTagName(“输入”);
对于(var i=0;i如果我正确理解了需求,该Iif如何!)?这将使复选框列表控件中的所有项目在呈现以下内容时默认处于选中状态:
受保护的无效页面加载(对象发送方,事件参数e)
{
如果(第IsPostBack页)返回;
LoadCountryList();
}
私有void LoadCountryList()
{
_ctx=新的PayLinxDataContext();
chkCountries.DataSource=_ctx.Countries.OrderBy(c=>c.Name);
chkCountries.DataBind();
foreach(chkCountries.Items中的ListItem项目)
{
item.Selected=true;
}
}
如果我正确理解了该要求,该Iif如何!)?这将使复选框列表控件中的所有项目在呈现以下内容时默认选中:
受保护的无效页面加载(对象发送方,事件参数e)
{
如果(第IsPostBack页)返回;
LoadCountryList();
}
私有void LoadCountryList()
{
_ctx=新的PayLinxDataContext();
chkCountries.DataSource=_ctx.Countries.OrderBy(c=>c.Name);
chkCountries.DataBind();
foreach(chkCountries.Items中的ListItem项目)
{
item.Selected=true;
}
}
你能提供你的aspx代码吗?好的..其他人提供了答案。我建议..你应该在客户端javascript中这样做,不需要回发。你能提供你的aspx代码吗?好的..其他人提供了答案。我建议..你应该在客户端javascript中这样做,不需要回发。需要检查html输入类型..aa.elements[I].type==“checkbox”我想用一个复选框而不是点击按钮来选中/取消选中所有复选框。但是,CheckBoxAll
似乎没有客户端功能,可以检测是否选中了复选框。可以用复选框来完成吗,即如果CheckBoxAll如果选中了code>,它将自动选中所有其他复选框。需要检查html输入类型..aa.elements[i].type==“checkbox”我想用一个复选框而不是点击按钮来选中/取消选中所有复选框。但是,CheckBoxAll
似乎没有客户端功能,可以检测是否选中了复选框。可以用复选框来完成吗,即如果CheckBoxAll如果选中“代码>”,则应自动选中所有其他复选框。