繁体   English   中英

如何在CheckboxList selectedIndexChange上显示确认框?

[英]How to show a confirmation box on CheckboxList selectedIndexChange?

我有一个CheckBoxList,我只想在第二个ListItem(LOCKED)上添加一个确认框。 我的意思是,如果选择的项目是“ LOCKED”,则显示确认框,否则显示“ not”。

这是myCheckBoxList

  <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>

这是我的代码背后

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;");
    }
}

问题是,每次我选中和取消选中任何checkboxList项时,确认框都会显示。

有谁知道如何解决它?

提前致谢

onclick事件绑定到ListItem selectedItem而不是cblFlags ,后者是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循环 就我的理解而言,检查更新后的代码对我是否有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM