我知道我可以循环遍历checkboxlist.Items并查看是否没有选择任何项,但是在后面的代码中,是否有更好的方法来查看是否没有选择任何项?
checkboxlist.Items
i86rm4rw1#
必须检查SelectedIndex。如果它等于-1,则表示未选择任何内容。
CheckBoxList list = new CheckBoxList(); if (list.SelectedIndex == -1) { //Nothing is selected }
5rgfhyps2#
CheckBoxList具有选定索引和选定值的属性。可以检查是否有SelectedIndex;如果未选中任何项,则为-1。
ipakzgxi3#
这可能是验证CheckBoxList最简单的方法:使用自定义验证程序:
<asp:CustomValidator runat="server" ID="cvmodulelist" ClientValidationFunction="ValidateModuleList" ErrorMessage="Please Select Atleast one Module"></asp:CustomValidator>
创建一个JavaScript函数来验证CheckBoxList:
// javascript to add to your aspx page function ValidateModuleList(source, args) { var chkListModules= document.getElementById ('<%= chkModuleList.ClientID %>'); var chkListinputs = chkListModules.getElementsByTagName("input"); for (var i=0;i<chkListinputs .length;i++) { if (chkListinputs [i].checked) { args.IsValid = true; return; } } args.IsValid = false; }
另一个选项是建立自订验证控件,如下所示:
using System; using System.Web.UI; using System.Web.UI.WebControls; using System.ComponentModel; namespace CustomValidators { public class RequiredFieldValidatorForCheckBoxLists : System.Web.UI.WebControls.BaseValidator { private ListControl _listctrl; public RequiredFieldValidatorForCheckBoxLists() { base.EnableClientScript = false; } protected override bool ControlPropertiesValid() { Control ctrl = FindControl(ControlToValidate); if (ctrl != null) { _listctrl = (ListControl) ctrl; return (_listctrl != null); } else return false; // raise exception } protected override bool EvaluateIsValid() { return _listctrl.SelectedIndex != -1; } } }
kse8i1jr4#
必须检查所选索引如果所选索引为-1,则表示未选择任何项
if (CheckBoxList1.SelectedIndex == -1) { Response.Write("<script> alert('Show your message') </script>"); }
4条答案
按热度按时间i86rm4rw1#
必须检查SelectedIndex。如果它等于-1,则表示未选择任何内容。
5rgfhyps2#
CheckBoxList具有选定索引和选定值的属性。
可以检查是否有SelectedIndex;如果未选中任何项,则为-1。
ipakzgxi3#
这可能是验证CheckBoxList最简单的方法:
使用自定义验证程序:
创建一个JavaScript函数来验证CheckBoxList:
另一个选项是建立自订验证控件,如下所示:
kse8i1jr4#
必须检查所选索引如果所选索引为-1,则表示未选择任何项