如问题所述,当选中标题中的“全选”复选框时,我已经可以选中gridview行中的复选框,当取消选中标题中的“全选”复选框时,取消选中gridview行中的复选框。我想做的是,当没有选中行中的所有复选框时,则不选中标题中的“全选”复选框,反之亦然(当选中行中的所有复选框时,则选中标题中的“全选”复选框)。
我该怎么做?
我已经做了我想要实现的,但是标题中的复选框开始影响(选中或取消选中),即使我只选中或取消选中行中的单个复选框,而不是所有行。
这是我正在使用的代码:
protected void checkAll_CheckedChanged(object sender, EventArgs e)
{
CheckBox ChkBoxHeader = (CheckBox)GridView1.HeaderRow.FindControl("checkAll");
foreach (GridViewRow row in GridView1.Rows)
{
CheckBox ChkBoxRows = (CheckBox)row.FindControl("chkbx_select");
if (ChkBoxHeader.Checked)
{
ChkBoxRows.Checked = true;
}
else
{
ChkBoxRows.Checked = false;
}
}
}
protected void chkbx_select_CheckedChanged(object sender, EventArgs e)
{
CheckBox chkbx_select = (CheckBox)sender;
CheckBox ChkBoxHeader = (CheckBox)GridView1.HeaderRow.FindControl("checkAll");
foreach (GridViewRow row in GridView1.Rows)
{
if (chkbx_select.Checked)
{
ChkBoxHeader.Checked = true;
}
else
{
ChkBoxHeader.Checked = false;
}
}
}
非常感谢你的回答。
谢谢你。
想法是在每个CheckedChanged事件上迭代所有复选框(在所有行中),并确保所有复选框都被选中。像这样的
protected void chkbx_select_CheckedChanged(object sender, EventArgs e)
{
CheckBox chkbx_select = (CheckBox)sender;
CheckBox ChkBoxHeader = (CheckBox)GridView1.HeaderRow.FindControl("checkAll");
if(!chkbx_select.Checked)
{
// Checkbox was unchecked,
// short circuit, set Select All Checkbox.Checked = false and return
ChkBoxHeader.Checked = false;
return;
}
bool allChecked = true;
foreach (GridViewRow row in GridView1.Rows)
{
// this is pseudocode, find checkbox on each row
var checkBox = row.FindControl("Checkbox")
if (!checkbox.Checked)
{
allChecked = false;
break;
}
}
ChkBoxHeader.Checked = allChecked;
}
我创建了一个windows窗体(到目前为止)只包含复选框。构造函数接受一个参数:。对于这个数组中的每个字符串,我都会创建一个复选框。 例如: null 那么,当另一个复选框调用uncheck时,是否有一种方法可以告诉我的复选框不要运行? 下面是我的代码(它都是手工编写的,所以没有使用visual studio设计器):
如果选中复选框D并取消选中其他复选框,我希望选中复选框K和F。同样,如果选中复选框I,则前面的复选框I将被选中,下面的复选框将被取消选中。我的html代码是: 我为此所做的是: 这看起来很乱,还有一个很酷的过程吗???
我希望在选中表中的所有复选框时选中标题复选框,如果没有选中单个复选框,则应取消选中标题复选框。
问题内容: 我有一组具有相同名称的输入复选框,并且我想确定已使用JavaScript选中了哪些复选框,如何实现呢?我只知道如何获取所有复选框,如下所示: 问题答案: 一个简单的for循环,用于测试属性并将选中的属性附加到单独的数组中。从那里,如果需要,您可以进一步处理数组。
我正在尝试一个Woocommerce票证插件。默认情况下,该插件会显示一个表,其中包含多个票证变体作为产品,并在下面显示一个文本字段作为其数量和一个提交按钮,以将产品添加到购物车中。 我想用单选按钮或复选框替换这个文本字段,这样用户就可以选择一种类型的票证,然后点击提交按钮将其中的一部分添加到购物车中。 我的想法是在foreach循环中创建一个复选框或单选按钮,该复选框或单选按钮的值为quanti
下载整个项目。zip在这里 此问题的代码在Views文件夹中的CreateSchedule.aspx文件中。 以下是GridView的ASP.NET: 在取消选中某个框后调试事件时,网页上的复选框显示为未选中,但的值为true,即使该复选框在网页上显示为未选中。(chkRow是未选中的复选框) 更新3 我取得了一些突破。我发现复选框的问题在于嵌套的gridview位于使用JavaScript折叠和