【发布时间】:2011-04-03 08:06:24
【问题描述】:
如何检查单个 asp.net 按钮单击事件上的所有 asp.net 复选框
如果我在 panel1 中有 45 个复选框,我希望在按钮单击事件上所有复选框都将被选中,而在另一个按钮单击事件上,所有复选框都将被取消选中...
如何使用 jquery、javascript 或 vb.net 来实现?
【问题讨论】:
标签: javascript jquery asp.net vb.net
如何检查单个 asp.net 按钮单击事件上的所有 asp.net 复选框
如果我在 panel1 中有 45 个复选框,我希望在按钮单击事件上所有复选框都将被选中,而在另一个按钮单击事件上,所有复选框都将被取消选中...
如何使用 jquery、javascript 或 vb.net 来实现?
【问题讨论】:
标签: javascript jquery asp.net vb.net
使用 jQuery 你可以做到
var $checkboxes = $('input[type=checkbox]');
$('#check').toggle(function() {
$checkboxes.attr('checked', 'checked');
return false;
}, function() {
$checkboxes.removeAttr('checked');
return false;
});
【讨论】:
这是您的复选框、面板和按钮的 aspx 文件代码;
<asp:Panel ID="Panel1" runat="server">
<asp:CheckBox ID="CheckBox1" runat="server" />
<asp:CheckBox ID="CheckBox2" runat="server" />
<asp:CheckBox ID="CheckBox3" runat="server" />
</asp:Panel>
<asp:Button Text="click" ID="Button1" runat="server" onclick="Button1_Click" />
这是你的按钮点击事件事件的c#代码;
protected void Button1_Click(object sender, EventArgs e) {
foreach (Control c in Panel1.Controls) {
if (c is CheckBox) {
(c as CheckBox).Checked = true;
}
}
}
这是这段c#代码的VB版本;
Protected Sub Button1_Click(sender As Object, e As EventArgs)
For Each c As Control In Panel1.Controls
If TypeOf c Is CheckBox Then
TryCast(c, CheckBox).Checked = True
End If
Next
End Sub
当你点击按钮时,它应该批量检查所有的复选框。
编辑:
如果您想在同一次点击中选中未选中的并取消选中选中的,请执行以下操作
C#:
protected void Button1_Click(object sender, EventArgs e) {
foreach (Control c in Panel1.Controls) {
if (c is CheckBox) {
if ((c as CheckBox).Checked) {
(c as CheckBox).Checked = false;
} else {
(c as CheckBox).Checked = true;
}
}
}
}
VB:
Protected Sub Button1_Click(sender As Object, e As EventArgs)
For Each c As Control In Panel1.Controls
If TypeOf c Is CheckBox Then
If TryCast(c, CheckBox).Checked Then
TryCast(c, CheckBox).Checked = False
Else
TryCast(c, CheckBox).Checked = True
End If
End If
Next
End Sub
【讨论】:
在其控件上呈现 IDs 和 NAMEs 时,ASP.NET 有点怪癖。
试试这样的:
<asp:Button ID="myToggleButton" runat="server" Text="Toggle Checkboxes" />
然后在你的脚本中
$('[id$="myToggleButton"]').click(function(){
$('input:checkbox')
.filter(':checked')
.attr('checked',false)
.end()
.not(':checked')
.attr('checked',true)
;
});
或类似的想法。我很确定您可以进一步优化该 jQuery 代码。
【讨论】: