C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.17520 の関連記事表示

<< 0 >>
■17520  ユーザーコントロールからObjectDataSourceへ
□投稿者/ PPP -(2008/04/26(Sat) 18:53:19)

    分類:[ASP.NET (C#)] 

    こんにちわ。ASP.NET2.0での質問になります。未熟な為、説明不足や手法が一般的で無い場合は
    ご指導お願いします。よろしくお願いします。

    [検索条件エリア]と[結果表示エリア]があるWebフォームで、[検索条件エリア]をユーザーコントロールとして作成し、
    [結果表示エリア]で利用するObjectDataSourceの条件(SelectParameters)として、ユーザーコントロール内のTextBoxを
    指定した場合、どのように設定すればよろしいのでしょうか?
    ObjectDataSourceのデータソースの構成のパラメータ定義では、Webフォーム内のコントロールのみ指定可能で
    ユーザーコントロール内のコントロールが指定できないので困っております。

    [検索条件エリア]を流用したいので、このような処理をしていますが、もしかしてこの使用法は一般的では無いのでしょうか?
親記事 /過去ログ35より / 関連記事表示
削除チェック/

■17528  Re[1]: ユーザーコントロールからObjectDataSourceへ
□投稿者/ ネタ好き -(2008/04/26(Sat) 20:06:50)
    No17520 (PPP さん) に返信
    >ユーザーコントロール内のコントロールが指定できないので困っております。
    まだあまり詳細に読んでいないのでピントがずれているかもしれませんが、
    プロパティなどで設定するべき情報を外部に出していないのが問題だと思います。
記事No.17520 のレス /過去ログ35より / 関連記事表示
削除チェック/

■17533  Re[2]: ユーザーコントロールからObjectDataSourceへ
□投稿者/ PPP -(2008/04/26(Sat) 21:40:51)
    No17528 (ネタ好き さん) に返信
    > ■No17520 (PPP さん) に返信
    > >ユーザーコントロール内のコントロールが指定できないので困っております。
    > まだあまり詳細に読んでいないのでピントがずれているかもしれませんが、
    > プロパティなどで設定するべき情報を外部に出していないのが問題だと思います。
    
    おっしゃる通り「公開していないと設定できない」と、ユーザーコントロール側で
    コントロール(TextBox:Joken)をプロパティで公開してみました。
    
    が、上手く行きませんでした。調べてみたのですが、ユーザコントロールは実行時にコンパイルされるので
    デザイン時にはユーザーコントロール内にどのコントロールがあるか認識できない ってことみたいです。
    
    なら、Page_Load時にFindControl利用してSelectParametersに割り当て?と思い試してみましたが
    ControlIDに割り当てすべき文字列が上手く得られませんでした。
    
    最終的には、ユーザーコントロールのID(WebUserControl1$Joken)を調べてソースに書き込み動作的にはOKなのですが、
    もっとスマートな方法があればご教示いただけますでしょうか。
    
    <今のところ↓みたく書いています>
    <SelectParameters>
      <asp:ControlParameter ControlID="WebUserControl1$Joken" Name="hoge" PropertyName="Text" Type="String" />
    </SelectParameters>
記事No.17520 のレス /過去ログ35より / 関連記事表示
削除チェック/

■17536  Re[3]: ユーザーコントロールからObjectDataSourceへ
□投稿者/ ネタ好き -(2008/04/26(Sat) 22:10:09)
    >■No17520 (PPP さん) に返信

    そもそも無闇にオブジェクト参照を晒すのは危ない行為です。
    こんなふうにするとよいと思います。

    pubiic class FooControl : UserControl {
    private TextBox Joken;

    public string JokenText {
    get { return Joken.Text }
    set {
    //妥当性をチェックする
    Joken.Text = value;
    }
    }
    }
記事No.17520 のレス /過去ログ35より / 関連記事表示
削除チェック/

■17538  Re[4]: ユーザーコントロールからObjectDataSourceへ
□投稿者/ PPP -(2008/04/26(Sat) 22:20:27)
    No17536 (ネタ好き さん) に返信
    > >■No17520 (PPP さん) に返信
    >
    > そもそも無闇にオブジェクト参照を晒すのは危ない行為です。
    > こんなふうにするとよいと思います。
    >
    > pubiic class FooControl : UserControl {
    > private TextBox Joken;
    >
    > public string JokenText {
    > get { return Joken.Text }
    > set {
    > //妥当性をチェックする
    > Joken.Text = value;
    > }
    > }
    > }

    はい。一応それは認識しておりましたが、ControlParameterがControlIDとPropertyNameの設定が必要な為、コントロール自体を
    公開する必要があるのかと思い設定しました。
    しかし現状はプロパティの公開はせず、WebUserControl1$Jokenをそのまま書き込んでいます。

    <asp:ControlParameter ControlID="WebUserControl1$Joken" Name="hoge" PropertyName="Text" Type="String" />
記事No.17520 のレス /過去ログ35より / 関連記事表示
削除チェック/

■17539  Re[5]: ユーザーコントロールからObjectDataSourceへ
□投稿者/ ネタ好き -(2008/04/26(Sat) 22:30:04)
記事No.17520 のレス /過去ログ35より / 関連記事表示
削除チェック/

■17540  Re[6]: ユーザーコントロールからObjectDataSourceへ
□投稿者/ PPP -(2008/04/26(Sat) 22:39:47)
    No17539 (ネタ好き さん) に返信
    > ■No17538 (PPP さん) に返信
    > 宇宙仮面さんのサイトの記事http://uchukamen.com/ASPNET20/ObjectDataSource/Default.htm
    > が参考になると思います。ひとまずこれを試してみてください。

    すみませんが、もう少し詳しく具体的にどの部分が参考になるのか教えて戴けると嬉しいのですが、
    宇宙仮面さんのサイトでは、条件は同一フォーム内のDropDownListから得ているので、自分の望む
    「ユーザーコントロール内のコントロールから条件を得る」のと少し違うように思えます。
記事No.17520 のレス /過去ログ35より / 関連記事表示
削除チェック/

■17541  Re[7]: ユーザーコントロールからObjectDataSourceへ
□投稿者/ ネタ好き -(2008/04/26(Sat) 23:07:12)
    No17540 (PPP さん) に返信
    > ■No17539 (ネタ好き さん) に返信
    >>■No17538 (PPP さん) に返信
    >>宇宙仮面さんのサイトの記事http://uchukamen.com/ASPNET20/ObjectDataSource/Default.htm
    >>が参考になると思います。ひとまずこれを試してみてください。
    >
    > すみませんが、もう少し詳しく具体的にどの部分が参考になるのか教えて戴けると嬉しいのですが、
    > 宇宙仮面さんのサイトでは、条件は同一フォーム内のDropDownListから得ているので、自分の望む
    > 「ユーザーコントロール内のコントロールから条件を得る」のと少し違うように思えます。

    着目点はどうやってデータをやり取りしているかです。
    それさえ分かれば色々応用も出来ます。
記事No.17520 のレス /過去ログ35より / 関連記事表示
削除チェック/

■17545  Re[8]: ユーザーコントロールからObjectDataSourceへ
□投稿者/ PPP -(2008/04/26(Sat) 23:35:03)
    No17541 (ネタ好き さん) に返信
    > 着目点はどうやってデータをやり取りしているかです。
    > それさえ分かれば色々応用も出来ます。

    やっぱり知識不足のせいか、ネタ好きさんの意図していることが分かりません…。
    ObjectDataSourceを利用した場合に「どうやってデータをやり取りしているか」については、
    ・ビジネスロジック側でDataSetまたはDataTableを返すpublicメソッドを定義
    ・データの受け渡しは引数で指定し、その引数へはSelectParametersで指定し渡す
    と認識しています。
    この点について、過不足あればご指摘お願できますでしょうか。
    また、ここから何を応用すれば答えに辿り着くのかサッパリ分かっておりません…。
記事No.17520 のレス /過去ログ35より / 関連記事表示
削除チェック/

■17547  Re[9]: ユーザーコントロールからObjectDataS
□投稿者/ ネタ好き -(2008/04/27(Sun) 00:02:24)
    2008/04/27(Sun) 00:23:21 編集(投稿者)

    No17545 (PPP さん) に返信
    私の意図は自分で解決できる力を身につけてもらうと言う事です。
    限られた状況内の限られた解決手段を教えてもらっても実力はUPしません。
    そして同じような問題にぶち当たります。
    それで、親切心のつもりで考えるヒントを出しています。
    前の資料で足りない場合、http://www.atmarkit.co.jp/fdotnet/bookpreview/vs2005webapp_10/vs2005webapp_10_01.html
    が大変参考になります。
    前に提示した資料と今度の資料を実際に動作させて、ソースコードを読んでみてください。
    そうすれば、今回の問題はおのずと解けます。
    ヒント:デバッガを駆使しよう
記事No.17520 のレス /過去ログ35より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -