我有一个UserControl,我在WebForm中多次插入(例如10次)。 在UserControl中,我有一个CustomValidator:
<asp:CustomValidator ClientValidationFunction='CustomValidatorSesso'
ValidationGroup="richiestaIscrizione"
Runat="server"
ID="cvSesso"
onservervalidate="CustomValidatorSesso_ServerValidate" >
*
</asp:CustomValidator>
必须检查两个复选框的状态:chbMaschio
和chbFemmina
(位于UserControl内)。
在客户端,我需要(对于每个用户控件)检查是否至少检查了其中一个(对于每个UserControl),并通知(我将使用ValidationSummery)哪个UserControl都为空。
简而言之:每个UserControl都是“人”,我需要检查用户是否设置了性别(M或F)。如果没有,请显示哪个人没有设置它。
我在UserControl中添加了这个功能
function CustomValidatorSesso(oSrc, args) {
if (!$("#<%=chbFemmina.ClientID%>").is(":checked") && !$("#<%=chbMaschio.ClientID%>").is(":checked")) {
args.IsValid = false;
}
}
但这不起作用,因为它将在DOM中放置10倍相同的Javascript函数。如何为特定的UserControl调用相同的javascript函数?
答案 0 :(得分:0)
不幸的是,你不能用CheckBoxes做到这一点。但您可以使用其他可以使用CustomValidator
的控件,例如TextBoxes:
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:CustomValidator ClientValidationFunction="CustomValidatorSesso"
ValidationGroup="richiestaIscrizione"
runat="server"
ID="cvSesso" ControlToValidate="CheckBox1">
</asp:CustomValidator>
<script type="text/html">
function CustomValidatorSesso(oSrc, args) {
if (args.Value.length > 3) {
args.IsValid = true;
} else {
args.IsValid = false;
}
}
</script>