2

ページ (またはコントロール) の上に適切にフォーマットされたエラー メッセージを表示する必要があります。

したがって、新しく作成されたサーバー コントロールの render メソッドを実装しました。新しく作成されたコントロールは ValidationSummary から継承します。

public class AgValidationSummary : ValidationSummary
{
    protected override void Render(System.Web.UI.HtmlTextWriter writer)
    {
        if(this.Enabled)
        {
            if (Page.IsPostBack && !Page.IsValid)
            {

私の問題は、ボタンが起動され、彼のプロパティ CausesValidation が false に設定されている場合、Page.IsValid プロパティについて尋ねるため、validationsummary が例外をスローすることです (これは、Page.validate( への呼び出しがあった場合にのみ設定されます) )。

誰かが問題の解決策を持っていますか?

4

3 に答える 3

0

私はここで脱線しているかもしれませんが、コントロールのコンストラクターをページの Validate イベントに接続することはできませんか?

必要に応じて、レンダリング コードで次に何が起こるかを確認するためにレンダリングがチェックする内部フラグを持つことができます。

private bool _thePageIsBeingValidated = false;

public bool ShouldIDoMyThing
{
     get{ return (_thePageIsBeingValidated && this.Enabled && this.Page.IsPostback && this.Page.IsValid != null && this.Page.IsValid == false); }
}
于 2009-03-24T11:50:05.587 に答える
0

IsValid プロパティを ViewState に保存し、それを true に初期化できるかもしれません。

Load で IsValid が null かどうかを確認し、null でない場合は、ViewState の IsValid を Page.IsValid の値に設定します。

Render では、ViewState から IsValid を読み取ります。

于 2009-03-24T08:19:40.117 に答える