如何限制用户在按钮点击事件中选择不超过10个asp.net复选框,如果用户选择了10个以上的复选框,那么会弹出警告框,你不能选择10个以上的复选框?
答案 0 :(得分:2)
如果页面上没有多少复选框,则为复选框创建一个onlcick javascript函数,并遍历所有复选框以查看是否选中了超过10个。
如果页面上有很多复选框,则在单击复选框时递增变量,在取消选中复选框时递减。您将拥有始终可以检查的计数以显示警报。
答案 1 :(得分:1)
您可以使用CustomValidator
并实施其ServerValidate
事件(并且可选地,通过其ClientValidationFunction
在客户端上执行相同操作)。
也许是这样的(如果你使用的是jQuery):
<asp:CheckBoxList ID="Checkboxes" runat="server" />
<asp:CustomValidator ID="CheckboxValidator" runat="server" Display="None" ClientValidationFunction="CheckboxValidator_ClientValidate" OnServerValidate="CheckboxValidator_ServerValidate" ErrorMessage="Too many selections" />
<asp:ValidationSummary runat="server" />
<script type="text/javascript">
function CheckboxValidator_ClientValidate(sender, args) {
args.IsValid = jQuery('#<%=Checkboxes.ClientID%> input:checked').length < <%= MaximumSelections %>;
}
</script>
protected const int MaximumSelections = 10;
protected void CheckboxValidator_ServerValidate(object sender, ServerValidateEventArgs args)
{
args.IsValid = Checkboxes.Items.Cast<ListItem>().Where(i => i.Selected).Count() < MaximumSelections;
}