0

ASP.net Web サイトにマスター ページがあります。ここにボタンがあります。wecomePage に移動します。これがコードビハインドです。

protected void ImageButtonShortcut1_Click(object sender, ImageClickEventArgs e)
{
  Response.Redirect("welcomePage.aspx", true);
  //Server.Transfer("welcomePage.aspx", true);
}

これで、上記のマスターを継承する子ページができました。子ページ内では、TextBox を使用しましたRequired validation

<asp:TextBox ID="TextBox_Model" runat="server">  </asp:TextBox>
          <asp:RequiredFieldValidator ID="RequiredFieldValidator6" runat="server" 
                         ControlToValidate="TextBox_Model" ErrorMessage="Model Required"></asp:RequiredFieldValidator> 

シナリオ: ユーザーが上の子ページに移動し、そのテキスト ボックスに何も入力せずに、に戻るためにマスター ページ ボタンを押しようとしていWelcomePageます。

残念ながら、ユーザーが必須フィールドに入力していないため、ナビゲートできません。どうすればこの問題を克服できますか? 私を助けてください。ありがとうございました。

4

2 に答える 2

0

基本的に、すべてのコントロールが CausesValidation プロパティに設定され、True に設定されている場合に発生します。

Required Field Validator および Page Valid メソッドから

Validate メソッドは、ページ上で有効になっているすべての検証コントロールを反復処理し、それらを検証します。このイベントは、ページ ライフサイクルの Load イベントの後に発生します。

イベントを発生させたコントロールに ValidationGroup が指定されている場合、Page.Validate(ValidationGroup) オーバーロード メソッドを呼び出すことによって、同じ ValidationGroup に属する有効なバリデータ コントロールのみが検証されます。前述のように、これは、CausesValidation プロパティが true に設定されているコントロールに対して自動的に行われます。

  1. 検証グループを指定すると、ページのライフサイクル中にのみ検証されます

コードビハインドでは、このようにすることができます

protected void button2_click(object sender, EventArgs e)
{
if(!page.isValid)
 //show errors
}
else
{
 // do some stuffs
}
于 2012-04-12T05:59:46.267 に答える