嗨,我非常渴望得到帮助,这篇文章看起来可能类似于之前的帖子,但是代码的方法和要求完全不同。
我有一个复选框列表,其中使用存储过程填充了2个checkboxlist项。但是我添加了一个" Select All"列表项到复选框列表。
1.如何"全选"如何禁用所有其他复选框列表项?使用javascript或C#onchanged事件或jquery检查(但使用外部javascript文件而不是放入aspx文件本身)?
和
2。如果使用javascript或C#onchanged事件或jquery检查复选框1中的特定列表项(但使用外部javascript文件而不是放入aspx文件本身),我如何禁用/启用某些复选框项?
例如在checkboxlist1中,颜色,食物和饮料都填充了选择全部,在checkboxlist2中有红色,蓝色,绿色,鸡肉,菠菜,可乐和果汁填充。
在第一个示例场景中,我检查了颜色和食物,因此我如何编码只能在checkboxlist2中启用红色,蓝色,绿色,鸡肉和菠菜,或者在第二个示例场景中我只检查了checkboxlist1中的饮料,因此它应该只启用焦炭和果汁应禁用其余列表项。
第3。如何在没有收到$ undefined错误或运行时错误的情况下将我的脚本放在js.file中而不是作为脚本作为脚本?
ASPX
<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<html>
<head runat="server">
<Script>
$(document).ready(function () {
var checked = false;
$('#<%=Checkboxlist1.ClientID%> input:checkbox').click(function () {
var currentIdone = 'Select All';
var currentId = $(this).next().html();
if (currentId == currentIdone) {
if (checked) {
$("#<%=Checkboxlist1.ClientID%> input").removeAttr('disabled');
checked = false;
return;
}
else {
$("#<%=Checkboxlist1.ClientID%> input").attr('checked', false);
$(this).attr('checked', true);
$('#<%=Checkboxlist1.ClientID%> input:not(:checked)').attr('disabled', 'disabled');
checked = true;
}
}
});
});
$(document).ready(function () {
var checked = false;
$('#<%=Checkboxlist2.ClientID%> input:checkbox').click(function () {
var currentIdone = 'Select All';
var currentId = $(this).next().html();
if (currentId == currentIdone) {
if (checked) {
$("#<%=Checkboxlist2.ClientID%> input").removeAttr('disabled');
checked = false;
return;
}
else {
$("#<%=Checkboxlist2.ClientID%> input").attr('checked', false);
$(this).attr('checked', true);
$('#<%=Checkboxlist2.ClientID%> input:not(:checked)').attr('disabled', 'disabled');
checked = true;
}
}
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:CheckBoxList ID="Checkboxlist1" runat="server" Height="80px" Width="500px" AppendDataBoundItems="True" ViewStateMode="Enabled">
<asp:ListItem Text="Select All" Value="Select All"></asp:ListItem>
</asp:CheckBoxList>
<asp:CheckBoxList ID="Checkboxlist2" runat="server" Height="80px" Width="500px" AppendDataBoundItems="True" ViewStateMode="Enabled">
<asp:ListItem Text="Select All" Value="Select All"></asp:ListItem>
</asp:CheckBoxList>
</form>
</body>
</html>
答案 0 :(得分:0)
在checkboxlist1_SelectedIndexChanged
我假设Sellect all
值1
这里是代码
protected void checkboxlist1_SelectedIndexChanged(object sender, EventArgs e)
{
string roles = "";
try
{
roles = checkboxlist1.SelectedValue;
foreach (ListItem li1 in this.checkboxlist1.Items)
{
//checkboxlist1.Items.FindByText(li.ToString()).Selected = true;
if (li1.Value != "1" )
{
checkboxlist1.Items.FindByText(li1.ToString()).Enabled = false;
}
else
{
checkboxlist1.Items.FindByText(li1.ToString()).Enabled = true;
}
}
Boolean A = false;
foreach (ListItem li in this.checkboxlist1.Items)
{
//checkboxlist1.Items.FindByText(li.ToString()).Selected = true;
if (li.Selected)
{
A = true;
}
}
if (A == false)
{
foreach (ListItem li in this.checkboxlist1.Items)
{
checkboxlist1.Items.FindByText(li.ToString()).Enabled = true;
}
}
}
catch (Exception ex)
{
ClientLogger.ClientErrorLogger(ex.Message);
}
}