これはちょっと...奇妙です。基本的に私は、いくつかのカスタムフィールドテンプレートを利用するASP.NET Dynamic Dataを使用して構築しているフォームを持っています。間違った時刻に動的制御が読み込まれていますか?
FormViewに別のフィールドを追加しました。独自のカスタムテンプレートを使用しています。フォームは明らかな理由のためにそのコントロールを2回ロードしています。さらに悪いことに、最初にテンプレートをロードすると、Rowはまだ準備されておらず、エラーメッセージが表示されます。
Eval()、XPath()、Bind()などのデータバインディングメソッドは、データバインドされたコントロール
子オブジェクトを取得するために、私はLinqDataSourceコントロールOnSelectedイベントでの行の変数にアクセスしてるの文脈...奇妙な部分のために今すぐ
:私はフィールド少しの順序を変更した場合問題の原因となったものがもう2回読み込まれることはありません。
どのような考えですか?
EDIT:最初の読み込み時に(行を使用しようとすると例外がスローされる)、Page_Loadが呼び出されることに気付きましたが、もう一度呼び出されることはありません。それが助けてくれれば...
今は例外をキャッチして無視して管理していますが、実際の原因が見つからなければ、状況が壊れることは少しでも心配です。
EDIT 2:FindControlを再帰的に使用して、ページ上の他のコントロールを見つける問題をトレースしました。どうやらFindControlは、ページライフサイクルイベント(少なくともpage_loadまで)を発生させる可能性があります。これは、そのページが読み込まれる前に発生し、動的データ「stuff」はまだ準備ができていません。
私は思っています、あなたはページ上のformviewとLinqDatasourceへのformviewバインドを持っています。あなたはformviewに移入するいくつかのcustom/additionalフィールドを持っています。 custom/additinalフィールド値????? –
カスタムテンプレートをどのように追加するのか、コードを表示できますか? –
メインページにはFormViewがあり、Dynamic Dataテンプレートには独自のLinqDataSourceを持つFormViewも含まれています。私はカスタムテンプレートを直接追加するのではなく、ASP.NET Dynamic Dataの機能によって追加されています...私はメタデータクラスのUIHintを設定しています...コードは投稿するのが少し複雑ですが、私はおそらく後で今日する必要があります。 – CodeRedick