0

私は、CSLAフレームワークとAJAXModalPopupExtenderコントロールを使用しているASP.NETプロジェクトの真っ最中です。以前、CSLAとModalPopupExtenderをさまざまなプロジェクトで使用したことがありますが、これらを一緒に使用するのはこれが初めてです。

私がそれを機能させたいのは、ユーザーがボタンを押すことです。これにより、オブジェクトのインスタンスが作成され、モーダルポップアップが表示されます。ポップアップには、作成されたばかりのオブジェクトに基づいて、CslaDataSourceにバインドされたコントロールがあります。

代わりに、実際に機能する方法は、ポップアップがまだ非表示になっている場合でも、たとえば最初のページのロード中に、ModalPopupにコントロールをロードすることです。コントロールがバインドされているオブジェクトがまだ存在しないため、これによりエラーが生成されます。そのため、aspxページでコントロールと対応するJavascriptを正しくレンダリングできません。エラーは次のとおりです。「MicrosoftJScriptランタイムエラー:Sys.ArgumentNullException:値をnullにすることはできません。パラメーター名:要素」

私の現在の回避策は、ダミーオブジェクトを事前に作成することです。これにより、ポップアップのコントロールが最初にバインドできるものがあります。次に、ユーザーがボタンを押したときにそのオブジェクトを置き換えます。私が見逃しているかもしれない、より少ないオーバーヘッドでより簡単な方法があるかどうか疑問に思っています。

4

1 に答える 1

0

コントロールは非表示になっていますが、まだ作成されており、Web フォーム ページのライフサイクルを通過しています。ModalPopup は、既にバインドおよびレンダリングされたコントロールを表示するだけです。

javascript ajaxメソッドを使用することをお勧めします(XmlHttpオブジェクトを作成します-これはjqueryで非常に簡単です)。コントロールはレンダリングされ、その時点でページのライフサイクルを通過します。バインドは CslaDataSource OnSelectObject メソッドで行われます。

于 2010-01-17T19:45:35.323 に答える