私はasp.netで調査生成システムを書いています。変数として渡すことができるコントロールを作成するための最良の方法について、より簡単な質問をしました。これはユーザーコントロールで問題があったため、カスタムコントロールを使用することをお勧めしました。これを行う簡単な方法は、パネルコントロールから継承し、CreateChildControlsメソッドをオーバーライドしてコントロールコレクションの標準コントロールを追加することでした。このようにして、基本的に調査の質問である「調査」コントロールを作成できます。次に、質問コントロールが動的にページに追加されます。これはすべてうまく機能しますが、これらのコントロールから値を取得しようとすることになり、ビューステートとページライフサイクルの地獄の世界で迷子になっているようです。動的に追加されたテキストボックスに既知のIDがあることを確認できます。ただし、ページの初期化ハンドラーに親コントロールを追加した場合でも、CreateChildControlsメソッドは、ビューステートがロードされるまで実行されません。これらのテキストボックスから値を取得する方法がわかりません。
2 に答える
0
あなたは確かにこれを難しい方法でやっているようです。TextBoxの値はビューステートに保存されず、リクエストに投稿されます。
ここでUserControlを使用しないのはなぜですか?それで、どこかでそれを「渡す」ことができますか?正確に何をしようとしていますか?
于 2010-01-28T01:32:03.043 に答える
0
コントロールのinitハンドラーでEnsureChildControlsメソッドを呼び出して、ViewStateがロードされる前にCreateChildControlsが呼び出されるようにすることができます。
于 2010-01-28T01:59:27.110 に答える