asp.net 有什么简单方法可以检查checkboxlist控件中是否没有选中项?

qaxu7uf2  于 2022-11-19  发布在  .NET
关注(0)|答案(4)|浏览(112)

我知道我可以循环遍历checkboxlist.Items并查看是否没有选择任何项,但是在后面的代码中,是否有更好的方法来查看是否没有选择任何项?

i86rm4rw

i86rm4rw1#

必须检查SelectedIndex。如果它等于-1,则表示未选择任何内容。

CheckBoxList list = new CheckBoxList();
 if (list.SelectedIndex == -1)
 {
      //Nothing is selected
 }
5rgfhyps

5rgfhyps2#

CheckBoxList具有选定索引选定值的属性。
可以检查是否有SelectedIndex;如果未选中任何项,则为-1。

ipakzgxi

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;
     }
   }
}
kse8i1jr

kse8i1jr4#

必须检查所选索引如果所选索引为-1,则表示未选择任何项

if (CheckBoxList1.SelectedIndex == -1)
{
     Response.Write("<script> alert('Show your message') </script>");
}

相关问题