ブラウザからasp.net検証サーバーコントロールを無効にしたかったのです。私はオンラインで確認しましたが、サーバー側の検証を無効にする方法はありませんでした。 JS/jQueryを使用してクライアント側でのみ無効にすることができます。ブラウザからasp.net Webフォームでサーバー側の検証を無効にする方法は?
ここにはシナリオがあります:私はチェックボックスを持っていて、選択するとテキストボックスのセットが表示されます。チェックボックスがオンになっている場合のみ、必要なフィールドバリデーターがテキストボックスに対して有効になります。私はチェックボックスでポストバックを呼びたくない。実際には、これらのchceckボックスはjQueryテンプレートで生成されるので、ポストバックは無効化を有効にするオプションではありません。
いくつかの設定を使用してブラウザからコントロールの.CausesValidationプロパティを無効にする方法があるかどうかを知りたいですか?または、page_loadの前にあるイベントで、検証のために考慮すべきコントロールをキャプチャする方法がありますか?
受け入れ答えに基づいて、[更新] は、ここに私のソリューションです:
<form id="form1" runat="server">
<div>
<asp:TextBox ID="textbox1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="req1" ControlToValidate="textbox1" runat="server"
ErrorMessage="enter text"></asp:RequiredFieldValidator>
<asp:TextBox ID="textbox2" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="req2" ControlToValidate="textbox2" runat="server"
ErrorMessage="enter text for 2"></asp:RequiredFieldValidator>
<asp:CheckBox ID="check1" runat="server" Text="choose" />
<asp:Button ID="submitBtn" runat="server" OnClick="submitBtn_Click" Text="submit" />
<asp:CustomValidator ID="cvBox" runat="server" ErrorMessage="Error" ValidationGroup="prueba"
OnServerValidate="Validarcaja"></asp:CustomValidator>
<asp:ValidationSummary ID="summary" runat="server" />
</div>
</form>
protected void Page_Load(object sender, EventArgs e)
{
req1.Enabled = false;
req2.Enabled = false;
}
protected void submitBtn_Click(object sender, EventArgs e)
{
if (Page.IsPostBack)
{
Page.Validate();
if (Page.IsValid)
{
Response.Write("valid form");
}
else
{
Response.Write("invalid form");
}
}
}
protected void Validarcaja(object source, ServerValidateEventArgs args)
{
if (check1.Checked)
{
req1.Enabled = true;
req1.Validate();
}
}
ありがとう@netadictos .. :) – Amit
@Amitバリの良いチェーン、;-) – netadictos