0

ラジオボタンリスト、テキストボックス、必須フィールドバリデーターコントロールを保持するリピーターがあります。Radiobuttonlist は以下を保持します。

Meets (Value M)
Above (Value A)
Below (Value B)
N/A (Value(N/A)

テキストボックスは、ユーザーが回答の正当な理由を入力できるように設定されており、requiredfieldvalidator は、テキストボックスが空ではなく、十分に単純であることを確認します。ただし、スコープが少し変更され、クライアントは、答えが「M」でない場合にのみ、requiredfieldvalidator を起動する必要があります。

バリデーターの Load メソッドを設定しようとしましたが、バリデーターがロードされると、ユーザーが応答する前に起動されるため、RBL にある答えがわかりません。リピーターはモーダルポップアップ内で処理され、ポストバックを行うと何が起こるかわからないため、ポストバックを行うことができるとは思いません。ユーザーが「Meets」以外のものを選択した場合にのみ、バリデーターを false に設定するにはどうすればよいですか?

4

1 に答える 1

1

これを試して:

Java スクリプト:

<script type="text/javascript">
    function UpdateValidator(radioID, validatorid) {
        //enabling the validator only if the checkbox is checked
        var enableValidator = $("#" + radioID).is(":checked");          
        ValidatorEnable(validatorid, enableValidator);
    }
</script>

csコード:

protected void myRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            RadioButton rd = e.Item.FindControl("myRb") as RadioButton;
            RequiredFieldValidator rfv = e.Item.FindControl("myRfv") as RequiredFieldValidator;
            // you can just pass "this" instead of "myDiv.ClientID" and get the ID from the DOM element
            rd.Attributes.Add("onclick", "UpdateValidator('" + rd.ClientID + "','" + rfv.ClientID + "');");
        }
    }
于 2012-05-03T13:57:15.427 に答える