Asp.net c语言中列表框的多重选择#

Asp.net c语言中列表框的多重选择#,asp.net,listbox,multipleselection,Asp.net,Listbox,Multipleselection,我想知道如何允许用户只从列表框中选择3个选项。我正在查看此代码,我认为这其中存在一些逻辑错误,但我看不出哪里出了问题,因为我是新手。是否有人可以指导我或与我共享一些文章,以便我可以处理此问题,谢谢:) 我的代码 if (listBox1.SelectedIndex <= 4) errorProvider1.SetError(listBox1, "Please pick 1."); else errorProvider1.SetError(listBox1, "");

我想知道如何允许用户只从列表框中选择3个选项。我正在查看此代码,我认为这其中存在一些逻辑错误,但我看不出哪里出了问题,因为我是新手。是否有人可以指导我或与我共享一些文章,以便我可以处理此问题,谢谢:)

我的代码

if (listBox1.SelectedIndex <= 4)
     errorProvider1.SetError(listBox1, "Please pick 1.");
else
     errorProvider1.SetError(listBox1, "");
if(列表框1.SelectedIndex

您可以使用:

提供客户端验证功能:

function validateSelectionCount(sender, args){
    var listbox = document.getElementById('ListBox1');
    args.IsValid = validateListBoxSelectionCount(listbox, 3, 3);
} 

function validateListBoxSelectionCount(listbox, minSelected, maxSelected){
    var selected=0;
    if(listbox != null){
        for (var i=0; i<listbox.length; i++){
            if(listbox.options[i].selected){
               selected++; 
               if(selected>maxSelected)break;
            }
        }
    }
   return (selected >= minSelected && selected <= maxSelected);
} 
Protected Sub validateSelectionCount(ByVal source As Object, ByVal args As ServerValidateEventArgs)
    Dim count As Int32 = 0
    Dim maxCount As Int32 = 3
    Dim minCount As Int32 = 3
    Dim lb As ListBox = DirectCast(Me.FindControl(DirectCast(source, CustomValidator).ControlToValidate), ListBox)
    For Each item As ListItem In lb.Items
        If item.Selected Then count += 1
        If count > maxCount Then Exit For
    Next
    args.IsValid = (count >= minCount AndAlso count <= maxCount)
End Sub
函数validateSelectCount(发送方,参数){
var listbox=document.getElementById('ListBox1');
args.IsValid=validateListBoxSelectionCount(列表框,3,3);
} 
函数validateListBoxSelectionCount(列表框、minSelected、maxSelected){
选择的var=0;
如果(列表框!=null){
对于(var i=0;imaxSelected)中断;
}
}
}
返回(已选择>=minSelected&&selected maxCount,然后退出
下一个

args.IsValid=(count>=minCount and also countSaurabh是正确的,将SelectionMode的Listbox属性设置为Multiple。这将允许您从Listbox中进行多项选择。

我目前正在一个web表单上执行此操作,我也可以执行此操作?c#将其设置为multipleSimple或multipleExende我认为您不应该为简单和扩展而烦恼。您的将其属性设置为
SelectionMode=Multiple
后,将满足要求,这意味着无论我将其设置为哪一个都不重要?我如何编写以允许用户仅选择3,当他们选择第4个时,将出现错误提供程序您在问题中没有提到这一点。好的,那么您必须将自定义验证器作为de编写由Tim Schmelter编写。它将用c#和.cs文件编写。
Protected Sub validateSelectionCount(ByVal source As Object, ByVal args As ServerValidateEventArgs)
    Dim count As Int32 = 0
    Dim maxCount As Int32 = 3
    Dim minCount As Int32 = 3
    Dim lb As ListBox = DirectCast(Me.FindControl(DirectCast(source, CustomValidator).ControlToValidate), ListBox)
    For Each item As ListItem In lb.Items
        If item.Selected Then count += 1
        If count > maxCount Then Exit For
    Next
    args.IsValid = (count >= minCount AndAlso count <= maxCount)
End Sub
<asp:ListBox ID="ListBox1" CausesValidation="true" ValidationGroup="VG_SAVE" runat="server" CssClass="content" SelectionMode="Multiple"></asp:ListBox>
<asp:CustomValidator ID="CV_SelectionCount" runat="server" ValidateEmptyText="true" ClientValidationFunction="validateSelectionCount" OnServerValidate="validateSelectionCount" ControlToValidate="ListBox1" Display="None" EnableClientScript="true" ErrorMessage="Select 3 items" Style="visibility: hidden" ValidationGroup="VG_SAVE">*</asp:CustomValidator>