私は4つのチェックボックスを持つasp.netフォームを持っています。チェックボックスリストではありません。これら 4 つのチェック ボックスには、同じ名前の ValidationGroup プロパティがあり、「chkValied」と表示されます。そこにカスタムバリデーターを追加しました。少なくともチェックボックスをオンにしたい場合は、これらのうちチェックアウトする必要があります。何をすべきか ?
5019 次
3 に答える
2
CustomValidatorを使用して、クライアント側またはサーバー側のコードで入力を検証できます。
aspx マークアップ
<asp:CheckBox ID="CheckBox1" runat="server" />
<asp:CheckBox ID="CheckBox2" runat="server" />
<asp:CheckBox ID="CheckBox3" runat="server" />
<asp:CheckBox ID="CheckBox4" runat="server" />
<asp:CustomValidator
ID="CustomValidator1"
runat="server"
ErrorMessage="put here error description"
ClientValidationFunction="clientfunc"
OnServerValidate="CheckValidate">
</asp:CustomValidator>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
.cs (分離コード)
protected void CheckValidate(object source, ServerValidateEventArgs args)
{
args.IsValid=false;
if (CheckBox1.Checked)
args.IsValid = true;
if (CheckBox2.Checked)
args.IsValid = true;
if (CheckBox3.Checked)
args.IsValid = true;
if (CheckBox4.Checked)
args.IsValid = true;
}
protected void Button1_Click(object sender, EventArgs e)
{
if (IsValid)
{
//valid
}
else
{
//Invalid
}
}
JavaScript コード
<script type="text/javascript">
function clientfunc(sender, args) {
args.IsValid = false;
if (document.getElementById("CheckBox1").checked)
args.IsValid = true;
if (document.getElementById("CheckBox2").checked)
args.IsValid = true;
if (document.getElementById("CheckBox3").checked)
args.IsValid = true;
if (document.getElementById("CheckBox4").checked)
args.IsValid = true;
}
</script>
于 2011-02-22T07:11:46.517 に答える
1
1
カスタムバリデーターを使用している場合、そのようなことは or ステートメントで実現できます。
if (chkBox1.Checked || chkBox2.Checked || chkBox3.Checked)
{
// At least 1 checkbox was checked.
}
これはすべての言語に適用されます (|| は普遍的ではありませんが、すべての言語がそれを表現しています)。JavaScript では、.Checked の代わりに .Value が必要です。
于 2011-02-22T07:04:30.460 に答える