2012-01-05 4 views
1

私はtest.cでtest.aspxというページを持っています。 しかし、mbResultというコントロールにアクセスしたいのですが、 セパレートCSページのカスタムメッセージボックスコントロールはどれですか。 私は多くの人がこの質問をしていることを知っており、これは私のコントロールにアクセスする方法であることがわかりました。コントロールにアクセスしようとしているcsページで 'this'を使用しているエラー

MessageBoxControl mbox1 = this.FindControl("mbResult") as MessageBoxControl; 

は、しかし、私は「これは」静的プロパティ、静的メソッド、または静的フィールド初期化子では有効ではありません エラー5キーワードこのエラーを取得しておく

このコントロールを全てアクセスする方法上の任意のアイデアを私はそれを目に見えるようにしようとしています。 ありがとう

答えて

2

コードを非共有メソッドに移動する必要があります。ページのインスタンスで操作する必要があります。コメント

で明確にするため

アップデートは残念ながら、あなたのアプリケーションは、いくつかの再構築を必要としています。

メッセージボックスコントロールが新しいウィンドウに表示されている場合は、ソースページの値をクエリ文字列の新しいウィンドウに渡す必要があります。

ただし、メッセージボックスコントロールをソースページに表示するには、ページからUserControlに変換し、ユーザーコントロールへの参照をソースページに追加してから、ユーザーコントロールのインスタンスを直接ソースページに追加します。

+0

hmm私はこれをどのように実装するかはっきりしていません。 test.aspxページまたは新しいcsページにメソッドを作成します。 –

+0

test.cs.にメソッドを追加します。しかし、今私はそれについて考えるので、同じリクエストで2つのページをインスタンス化しないので、これを行うことはできません。あなたが達成しようとしていることを示すことができますか?あるページから別のページに値を送信しようとしていますか? –

+0

なるほど私は私のCSページからで、それはコードの部分を処理することになるだろう、と例外がある場合、私はメッセージボックスにエラーとともに表示させたい理由を私messageboxcontrolのテキストを変更することができるようにしたいです –

2

Staticsにはインスタンスベースのコンテキストがないため、thisは使用できません。 .FindControlを使用するコントロールへの参照が必要です(パラメータとして渡すことも可能です)。

関連する問題