如何在单个asp.net按钮单击事件中选中所有asp.net复选框
如果我在panel1中有45个复选框,我想在按钮点击事件上,所有的复选框都将被选中,而在另一个按钮点击事件中,所有的复选框都将被取消选中...
如何使用jquery、javascript或vb.net来完成这项工作?
发布于 2011-04-03 16:15:54
使用jQuery,您可以做到
var $checkboxes = $('input[type=checkbox]');
$('#check').toggle(function() {
$checkboxes.attr('checked', 'checked');
return false;
}, function() {
$checkboxes.removeAttr('checked');
return false;
});在http://jsfiddle.net/zgTw3/5/查看工作示例
发布于 2011-04-03 17:33:30
这是你的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发布于 2011-04-03 18:30:01
当涉及到在其控件上呈现ID和NAME时,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代码进行更多的优化。
https://stackoverflow.com/questions/5528387
复制相似问题