2017-01-16 14 views
1

私は更新パネル内に送信フォームを持っています。ユーザーが値を入力せずに「送信」ボタンをクリックすると、すべての必須フィールドに検証メッセージが表示されます。ASP.Net - ドロップダウンアイテムの変更後、更新パネル内の検証エラーが消えます

ユーザーがドロップダウンコントロールからアイテムを選択または変更すると、すべての検証メッセージが表示されなくなります。ドロップダウンコントロールにはAutoPostBack = "true"があります。

これを解決するには、すべてのドロップダウンコントロールを1つの更新パネルと別のパネルの他のコントロールに配置しようとしましたが、問題は解決しませんでした。

答えて

0

DropDownListのSelectedIndexChangedイベントが完了した後、フォームの妥当性検査を手動で呼び出すことができます。

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    // your code 
    ScriptManager.RegisterStartupScript(Page, Page.GetType(), "validateForm", "setTimeout(function() { Page_ClientValidate(); }, 25);", true); 
} 

あなたがValidationGroupを使用する場合は、関数内でそれを指定する必要があります。Page_ClientValidate('myGroup');

これに対する唯一の欠点は、それがすべてのバリデータによって活性化されていないものだけをトリガーするということですPostBackを実行するDropDownListの上のユーザー。

2

あなたの更新パネルでこれを試してください:
<asp:UpdatePanel ID="UP1" runat="server" UpdateMode="Conditional"> <ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID="DropDownList ID Here" /> </Triggers> <ContentTemplate> </asp:UpdatePanel>

OR

をJavaScriptのコードを使用して:

if (document.getElementById("<%=DropDownList ID.ClientID%>").value == "--SELECT--") { alert('Your Message Here'); document.getElementById("<%=DropDownList ID.ClientID %>").focus(); return false; } else { return true; }

関連する問題