Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.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
.net &引用;“所选项目的最大数量”-ListBox的验证程序_.net_Asp.net_Validation_Listbox - Fatal编程技术网

.net &引用;“所选项目的最大数量”-ListBox的验证程序

.net &引用;“所选项目的最大数量”-ListBox的验证程序,.net,asp.net,validation,listbox,.net,Asp.net,Validation,Listbox,我问自己,是否有一种简单的方法可以检查列表框中最多有5个选定项目。必须至少选择一项,最多选择5项 我需要带有服务器端验证的CustomValidator吗 非常感谢…您可以使用CustomValidator例程来完成 <asp:CustomValidator ID="ListBox5ItemsValidator" runat="server" OnServerValidate="ListBox5ItemsValidator_ServerValidate" ClientVal

我问自己,是否有一种简单的方法可以检查列表框中最多有5个选定项目。必须至少选择一项,最多选择5项

我需要带有服务器端验证的CustomValidator吗


非常感谢…您可以使用CustomValidator例程来完成

<asp:CustomValidator ID="ListBox5ItemsValidator" runat="server"
    OnServerValidate="ListBox5ItemsValidator_ServerValidate"
    ClientValidationFunction="ListBox5ItemsValidator_ClientValidate"
    ControlToValidate="MyListBox">
</asp:CustomValidator>

我已尝试实现CustomValidator服务器事件,但我收到的消息是:Sys.ArgumentException:控件和行为的值不能为null。参数名称:元素。我认为这与Ajax ValidationCalloutExtender有关。我发现了一些关于这个问题的信息,似乎ValidationCalloutExtender和
EnableClientScript=“false”
存在问题。这个页面更好地描述了这个问题,并提供了一个解决方案(即使对于像我的customvalidator这样不那么琐碎的事情):如果您可以使用jQuery提供ClientValidationFunction,我会将这个问题标记为已回答。非常感谢。
protected void ListBox5ItemsValidator_ServerValidate(
        object source, ServerValidateEventArgs args) {

    int selectionCount = 0;
    foreach (ListItem item in MyListBox.Items) {
        if (item.Selected) selectionCount++;
    }
    args.IsValid = (selectionCount >= 1 && selectionCount <= 5);
}
function ListBox5ItemsValidator_ClientValidate(sender, args) {
    var selectionCount = $('#<% =MyListBox.ClientID %> option:selected').length;
    args.IsValid = (selectionCount >= 1 && selectionCount <= 5);
};
ListBox MyListBox = (ListBox)FormView1.FindControl("MyListBox");