3 つのコントロールを検証して、それらが選択されているかどうかを確認するためのカスタム検証コントロールがあります。ValidatorCalloutExtender
メッセージのカスタマイズにも使用しています。単一のコントロールを検証すると正しく動作しますが、カスタムバリデーターを使用しているときにこのエラーが発生します
Microsoft JScript runtime error: Sys.ArgumentUndefinedException: Value cannot be undefined.
Parameter name: id
これは私のコードです。
<table>
<tr>
<td>
<ajx:ComboBox runat="server" ID="cmbPaymentType" DropDownStyle="DropDownList" CssClass="drop-down-list"
AutoCompleteMode="SuggestAppend">
<asp:ListItem Text="Cash only,No cheques" Value="0"></asp:ListItem>
<asp:ListItem Text="Cash/Cheques Only" Value="1"></asp:ListItem>
<asp:ListItem Text="Cash/Temporary credit" Value="2"></asp:ListItem>
<asp:ListItem Text="True Credit Only" Value="3"></asp:ListItem>
<asp:ListItem Text="Bill-To-Bill Credit Only" Value="4"></asp:ListItem>
</ajx:ComboBox>
</td>
</tr>
<tr>
<td>
<asp:ListBox ID="lstBoxCustomerName" runat="server" CssClass="list-item-normal">
<asp:ListItem>ABCKJHKJ</asp:ListItem>
<asp:ListItem>ABCKJHKJ</asp:ListItem>
<asp:ListItem>ABCKJHKJ</asp:ListItem>
<asp:ListItem>ABCKJHKJ</asp:ListItem>
</asp:ListBox>
</td>
</tr>
<tr>
<td>
<ajx:ComboBox runat="server" ID="cmbGroupNumber" DropDownStyle="DropDownList" CssClass="drop-down-list"
AutoCompleteMode="SuggestAppend">
</ajx:ComboBox>
</td>
</tr>
<tr>
<td>
<asp:CustomValidator ID="PromotionOptionValidator" runat="server"
ErrorMessage="Please select atleast one promotion option."
onservervalidate="PromotionOptionValidator_ServerValidate" ControlToValidate="cmbPaymentType&lstBoxCustomerName&cmbGroupNumber"></asp:CustomValidator>
<ajx:ValidatorCalloutExtender runat="server" ID="PromotionOptionAjxValidator" TargetControlID="PromotionOptionValidator"
PopupPosition="TopLeft">
</ajx:ValidatorCalloutExtender>
</td>
</tr>
</table>
これがコードビハインドです
args.IsValid = true;
if (cmbPaymentType.SelectedIndex == -1 && lstBoxCustomerName.SelectedIndex == -1 && cmbGroupNumber.SelectedIndex == -1)
{
args.IsValid = false;
}
ValidatorCalloutExtender
CustomValidatorで使用することは可能ですか。ありがとう。