- - PR -
ASPで、マスターページを使う時のObjectDataSorceについて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-02-01 22:00
いつもお世話になっております。
環境:VS2005 WinXP 現在ASP2.0で開発しています。 マスターページを使用したWebフォームで、ObjectDataSorceを使用して Gridviewとバインドさせたいのですがうまくいきません。 ObjectDataSorceのSelectMethodの設定で、SelectParametersに Text1(テキストボックス)の値を設定し、実際に呼び出すメソッドの 引数(引数の変数名はCode)にしました。 ところが実行すると画面を表示する前にブラウザに以下のエラーが表示されます。 「アプリケーションでサーバー エラーが発生しました。」 「コントロール 'Text1' は ControlParameter 'Code' 内に見つかりませんでした。」 以下のことからマスターページを使うことに原因があるのではと考えています。 @マスターページを使わないWebフォームでは正しく実行できました。 Aマスターページを使うWebフォームでは、ObjectDataSorceでSelectParameters のコントロール名を選ぶ際、コンボボックスに同じコントロール名が2つ 出てきます。 ※説明の仕方がわかりにくかったら大変申し訳ないです。 どなたか原因や解決策をご存知の方いらっしゃいましたらご教授ください。 | ||||
|
投稿日時: 2007-02-02 07:23
SelectParametersの
ControlParmeterを確認してみてください。
_________________ ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集 | ||||
|
投稿日時: 2007-02-02 09:54
ご返信ありがとうございます。
SelectParametersのControlParmeterを確認してみたところ、 <asp:ObjectDataSource ID="ObjectDataSource1" runat="server"> <SelectParameters> <asp:ControlParameter ControlID="Text1" Name="Code" PropertyName="Text" Type="String" /> </SelectParameters> </asp:ObjectDataSource> という内容で、Accessさんの投稿とType以外は変わらないものでした。 また、マスターページを使用していない正しく動作する方と比べても同じ内容でした。 | ||||
|
投稿日時: 2007-02-02 17:35
調べてみたところ、
実行時に、マスターページがASPXファイルのコントロールのIDを変更するため、 実行時のControlIDと、ObjectDataSourceのControlParameterプロパティに 設定したControlIDが異なっている と予想できました。 初期処理で、マスターページが変更したコントロールIDを元に戻す方法など ないでしょうか? また、私の予想と原因が違う、など何かご存知の方よろしくお願いします。 | ||||
|
投稿日時: 2007-02-19 13:50
マスターページを介したコントロール名で、SelectParameterの設定は
できなかったので、セッションIDを使用して解決しました。 ありがとうございました。 |
1