0

私はasp.netで調査生成システムを書いています。変数として渡すことができるコントロールを作成するための最良の方法について、より簡単な質問をしました。これはユーザーコントロールで問題があったため、カスタムコントロールを使用することをお勧めしました。これを行う簡単な方法は、パネルコントロールから継承し、CreateChildControlsメソッドをオーバーライドしてコントロールコレクションの標準コントロールを追加することでした。このようにして、基本的に調査の質問である「調査」コントロールを作成できます。次に、質問コントロールが動的にページに追加されます。これはすべてうまく機能しますが、これらのコントロールから値を取得しようとすることになり、ビューステートとページライフサイクルの地獄の世界で迷子になっているようです。動的に追加されたテキストボックスに既知のIDがあることを確認できます。ただし、ページの初期化ハンドラーに親コントロールを追加した場合でも、CreateChildControlsメソッドは、ビューステートがロードされるまで実行されません。これらのテキストボックスから値を取得する方法がわかりません。

4

2 に答える 2

0

あなたは確かにこれを難しい方法でやっているようです。TextBoxの値はビューステートに保存されず、リクエストに投稿されます。

ここでUserControlを使用しないのはなぜですか?それで、どこかでそれを「渡す」ことができますか?正確に何をしようとしていますか?

于 2010-01-28T01:32:03.043 に答える
0

コントロールのinitハンドラーでEnsureChildControlsメソッドを呼び出して、ViewStateがロードされる前にCreateChildControlsが呼び出されるようにすることができます。

于 2010-01-28T01:59:27.110 に答える