.ascxファイルはページライフサイクルの早い段階で自然にレンダリングされるため、.ascxパーツ外のフォームの情報を更新するには、.ascxファイルをどのように更新すればよいですか。ボタンのクリック(情報を保存するもの)と同じように、変更を反映しますか?例えば.ascxファイルの内容をリフレッシュする
(擬似コード):
.ascxファイルはページライフサイクルの早い段階で自然にレンダリングされるため、.ascxパーツ外のフォームの情報を更新するには、.ascxファイルをどのように更新すればよいですか。ボタンのクリック(情報を保存するもの)と同じように、変更を反映しますか?例えば.ascxファイルの内容をリフレッシュする
(擬似コード):
保存されたデータに基づいて構築されているユーザーコントロールを作成している場合。何ができると、その建物を行うメソッドを作成し、ページおよびユーザーコントロール(擬似コード)以内にそれを呼び出すです:
ユーザーコントロール:ページを呼び出す
protected Page_Load(object sender, EventArgs e)
{
BuildControlBasedOnData();
}
public BuildControlBasedOnData()
{
// Build the user control based on saved data
}
:
Button_Click(object sender, EventArgs e)
{
UserControl1.BuildControlBasedOnData();
}
ユーザーコントロール(た.ascxファイル)は、あなたが言及同じように、含まれているページのライフサイクルの間にレンダリングされます。ポップバックをクリックすると、ポストバック時にユーザーコントロールが完全に再レンダリングされます。あなたはこの負荷時に異なる情報が含まれているためにユーザーコントロールが必要な場合はあなたが行うことができます多くのものがあります:あなたのユーザーコントロールで
他にもたくさんのオプションがあります。部分的なポストバックやAJAXyタイプのものについて話しているのであれば、おそらくJavaScriptを使用してUser Controlのさまざまな部分を更新する必要があります(UpdatePanelsを使用していない限り、悪意のあるためではありません) 。
I私が不完全でありながらも使用可能な解決策であると信じていることを考え出しました。私がしたのはPage_Load
の機能を.ascxファイルPublic
に作成してから、情報が保存された後に呼び出されただけです。これは私の問題を世話しました。
もっと洗練されたソリューションをお持ちの方は、教えてください。
これを行う必要はありません。 Phairohが上記に言及しているように、ユーザーコントロールは、そのページのページライフサイクルに従います。パブリックプロパティと、レンダリングされる前にユーザーコントロールを変更するメソッドを公開することができます。 – CAbbott
私はちょうど 'Page_load'関数を呼び出す' ReRender'というパブリックメソッドを作成しますか? – Jason
あなたが達成しようとしていると思われるものに答えるために私の答えを修正しました。基本的には、ユーザーコントロール内のパブリックメソッドであり、必要に応じてコントロールを再構築するために呼び出すことができます。 – CAbbott
これは、infoがpage_load関数の外に保存された後にユーザーコントロールを再レンダリングする方法を教えてくれません... – Jason