0

これは私が困惑しているので、ここで助けを求めて手を差し伸べます。簡単に言うと、FormView 内のプレースホルダーに表示される、関数から構築された動的テーブルを取得しました。

FormView の EditItemTemplate 内に「保存」ボタンがあります。 CommandName="Save" - Select Case (ここでは VB を使用) があり、(ほとんど) すべてが期待どおりに機能しています。

ただし、コード ビハインドで PlaceHolder をプルすると、PlaceHolder にコントロールが表示されません。

簡単な概要は次のとおりです。

FormView ItemTemplate には、動的に生成されたテーブルからのデータを正しく表示する View_PlaceHolder があります。FormView EditItemTemplate には、動的に生成されたテーブルから同じデータを TextBox にロードする Edit_PlaceHolder があります (正常に動作し、同じデータが期待どおりに表示されます)。

[保存] をクリックすると、現在のコードは次のようになります。

Dim Edit_PlaceHolder as PlaceHolder = FormView1.FindControl("Edit_FV_PlaceHolder")
Dim EditTable as Table = Edit_PlaceHolder.FindControl("Edit_Plan_Holder")

Edit_PlaceHolder は何もありませんが、Controls.Count に 0 個のコントロールがあります

ああ、もう 1 つ情報があります。テーブルが作成され、FormView.DataBound イベントで PlaceHolder に追加されます。

私は何を間違っていますか?

4

2 に答える 2

0

さて、何が起こっていたかは次のとおりです。

1)NoAliasが述べたように、IDを保持する必要があります。「表示」モードまたは「編集」モードの場合、Page_Load を使用して ViewState 変数を設定しました。

2) 別の BuildViewTable() メソッドと BuildEditTable() メソッドを使用し、それらの中で別のクラスを呼び出してテーブルを構築しました。

3) 現在はすべて動作しています :) NoAlias さん、ありがとうございます。

于 2013-07-23T03:48:09.323 に答える
0

初期ロード時だけでなく、PostBacks でも動的に追加されたテーブルを再設定して追加する必要があります。詳細については、この質問に対する回答を確認してください。

于 2013-06-30T03:50:48.023 に答える