我问自己是否有一种简单的方法来检查ListBox是否最多包含5个选定项目。必须至少选择一项,最多5项。
我是否需要具有服务器端验证的CustomValidator?
非常感谢...
答案 0 :(得分:2)
您可以使用CustomValidator例程执行此操作。
<asp:CustomValidator ID="ListBox5ItemsValidator" runat="server"
OnServerValidate="ListBox5ItemsValidator_ServerValidate"
ClientValidationFunction="ListBox5ItemsValidator_ClientValidate"
ControlToValidate="MyListBox">
</asp:CustomValidator>
服务器端代码:
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);
};
将MyListBox替换为要验证的ListBox的实际名称。如果ListBox包含在其他容器控件中,则可能需要更多工作来在服务器和客户端引用该控件。例如,如果它包含在名为FormView1的FormView控件中,则使用
ListBox MyListBox = (ListBox)FormView1.FindControl("MyListBox");