Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在选中的复选框列表中显示确认框DexChange?_Javascript_C#_Checkboxlist_Confirm - Fatal编程技术网

Javascript 如何在选中的复选框列表中显示确认框DexChange?

Javascript 如何在选中的复选框列表中显示确认框DexChange?,javascript,c#,checkboxlist,confirm,Javascript,C#,Checkboxlist,Confirm,我有一个复选框列表,我只想在第二个列表项(锁定)上添加一个确认框。我的意思是,如果选择的项目是“锁定”,显示确认框,在另一种情况下,不要” 这是我的清单 <asp:CheckBoxList runat="server" AutoPostBack="True" ID="cblFlags" onselectedindexchanged="cblFlags_SelectedIndexChanged"> <asp:ListItem Text="VALID" Val

我有一个复选框列表,我只想在第二个列表项(锁定)上添加一个确认框。我的意思是,如果选择的项目是“锁定”,显示确认框,在另一种情况下,不要”

这是我的清单

  <asp:CheckBoxList runat="server" AutoPostBack="True" ID="cblFlags" onselectedindexchanged="cblFlags_SelectedIndexChanged">
        <asp:ListItem Text="VALID"  Value="ISVALID"></asp:ListItem>
        <asp:ListItem Text="LOCKED" Value="ISLOCKED"></asp:ListItem>
 </asp:CheckBoxList>
foreach (ListItem selectedItem in cblFlags.Items)
{
      if(selectedItem.Value == "ISLOCKED")
          selectedItem.Attributes.Add("onclick", "if (!confirm('Are you sure ?')) return false;");
}

这是我的密码

protected void cblFlags_SelectedIndexChanged(object sender, EventArgs e)
{
    var selectedItems = cblFlags.Items.Cast<ListItem>().Where(x => x.Selected);

    foreach (ListItem selectedItem in selectedItems)
    {
          if(selectedItem.Value == "ISLOCKED")
              cblFlags.Attributes.Add("onclick", "if (!confirm('Are you sure ?')) return false;");
    }
}
protectedvoid cblFlags\u SelectedIndexChanged(对象发送方,事件参数e)
{
var selectedItems=cblFlags.Items.Cast()。其中(x=>x.Selected);
foreach(selectedItems中的ListItem selectedItem)
{
如果(selectedItem.Value==“ISLOCKED”)
cblFlags.Attributes.Add(“onclick”,“if(!confirm('you sure?'))返回false;”;
}
}
问题是每次我选中或取消选中任何复选框列表项时,都会显示确认框

有人知道如何修复它吗


提前感谢

绑定列表上的
onclick
事件项
选择editem
,而不是复选框列表中的
cblFlags

  <asp:CheckBoxList runat="server" AutoPostBack="True" ID="cblFlags" onselectedindexchanged="cblFlags_SelectedIndexChanged">
        <asp:ListItem Text="VALID"  Value="ISVALID"></asp:ListItem>
        <asp:ListItem Text="LOCKED" Value="ISLOCKED"></asp:ListItem>
 </asp:CheckBoxList>
foreach (ListItem selectedItem in cblFlags.Items)
{
      if(selectedItem.Value == "ISLOCKED")
          selectedItem.Attributes.Add("onclick", "if (!confirm('Are you sure ?')) return false;");
}
编辑


我认为您需要通过使用
cblFlags.Items
而不是
selectedItems
来更改循环,因为一旦取消选中复选框,您将仅将javascript事件绑定到选定元素,然后在回发中,事件将不会再次绑定,因为执行不会进入
foreach
loop
。请检查我的更新就我的理解而言,d代码对我有效。

谢谢,但只有在我取消选中“ISLOCKED”时它才有效“项目。当我选中该项时,它不起作用您是否有任何客户端代码可能正在更改IsLocked属性?您可能必须将其从cblFlags\u SelectedIndexChanged移动到page\u Load请记住,您将单击事件绑定到仅选定的复选框,并告诉我您是否对复选框选择进行了回发?我有一个AutoPostBack=“True”在清单上