[seasar-dotnet:848] Re: [S2Form]Gridタイプコントロールについて

kubo [E-MAIL ADDRESS DELETED]
2008年 5月 29日 (木) 01:26:10 JST


久保です。

> DataGridViewへのバインディングの動作の対応しているのは次の通りでした。
> ・配列
> ・System.Data.DataTable
> ・System.Collections.ArrayList
> ・System.Collections.Generic.List<T>
> ・System.ComponentMode.BindingList<T>

なんとも「具象クラス」が基準なのですね。。。
(もしかして、IListをImplementsしてもダメだったり!?!?)

https://www.seasar.org/svn/sandbox/dbflute/trunk/dbflute-nbasic-example
にて、対応版があります。
AllCommon.CBean.ListResultBeanがGenericじゃないIListを実装しています。
こちらにある
mydbflute/dbflute-0.7.3-rc1/templates/om/csharp/allcommon/cbean/ListResultBean.vmnet
を利用することで上記の対応版クラスが生成されます。

2008/5/28 Hiroaki Fujii <[E-MAIL ADDRESS DELETED]>:
> みなさまへ
>
> 藤井です。
>
> DataGridViewへのバインディングの動作の対応しているのは次の通りでした。
> ・配列
> ・System.Data.DataTable
> ・System.Collections.ArrayList
> ・System.Collections.Generic.List<T>
> ・System.ComponentMode.BindingList<T>
>
> 参考にしてください。
>
>
> [E-MAIL ADDRESS DELETED] さんは書きました:
>> 菊池さま
>>
>> ご教授ありがとうございます。
>> 山下真理です。
>>
>> BindingList<T>メソッドがあったなんで、勉強不足でした。
>> 早速、実装してみたいと思います。
>>
>> ありがとうございました。
>>
>> 山下真理
>>
>>
>> ----- Original Message -----
>> 送信者: 菊池和彦<[E-MAIL ADDRESS DELETED]>
>> 宛先: [E-MAIL ADDRESS DELETED]
>> 日付:Wednesday, May, 28, 2008, 11:43 AM
>> 件名: [seasar-dotnet:843] Re:[S2Form]Gridタイプコントロールについて
>>
>>>
>>> 菊池です
>>>
>>> IList<T> をバインディング可能にしたいのであれば
>>>
>>> System.ComponentModel.BindingList<T>
>>> http://msdn.microsoft.com/ja-jp/library/ms132679(VS.80).aspx
>>>
>>> を利用してみてはいかがでしょうか。(.NET Flamework 2.0以降)
>>>
>>> コンストラクタが IList<T> を受けますので、DBFlute から戻った IList<T> を元に BindingList
>> <T> を
>>> new してデータバインディングにまわすだけで良いと思います。
>>>
>>>
>>> 2008/05/28 11:27 koyak <[E-MAIL ADDRESS DELETED]>:
>>>> 山下様
>>>>
>>>> 小谷です。
>>>>
>>>>> DBFluteで取得した、List<Entry>をDTOに一度変換しList<Dto>として、
>>>>> やると、表示できるようになりました。
>>>>> DBFluteから取得したList<Entry>をそのまま利用できないようでした。。。
>>>> 現行の.NETの仕様が関係しているかもしれません。
>>>> http://msdn.microsoft.com/ja-jp/library/system.windows.forms.binding(VS.80).aspx
>>>> 上記ドキュメントを読む限りでは
>>>> コントロールにバインディング可能なのは(Genericではない方の)IList実装型です。
>>>>
>>>>> List<Dto>として、
>>>>> やると、表示できるようになりました。
>>>> ここで使われているList<T>はGenricではないIListとGenericなIList<T>の両方を実装しています。
>>
>>>> (名前がほぼ同じなのでわかりにくいですが)
>>>>
>>>> それに対してDBFluteのSelectListが返すリストはListResultBeanという型で、これは
>>>> GenericであるIList<T>を実装しており、GenericではないIListは実装していません。
>>>>
>>>> まだ推測のレベルなのですが、上記の違いにより
>>>> データが取れていてもDataGridViewに検索結果が反映されない、という
>>>> 現象が起こっている可能性があります。
>>>>
>>>> はっきりとしたことがわかりましたら、またご連絡致します。
>>>>
>>>> -----------------------------------------------------------------------
>>>> koyak
>>>> [E-MAIL ADDRESS DELETED]
>>>> -----------------------------------------------------------------------
>>>>
>>>> 2008/05/28 8:50  <[E-MAIL ADDRESS DELETED]>:
>>>>> 山下です。
>>>>>
>>>>> いつもお世話になっております。
>>>>>
>>>>> Gridの表示ですが、0件のように行が表示されておりません。
>>>>> DBFluteで取得した、List<Entry>をDTOに一度変換しList<Dto>として、
>>>>> やると、表示できるようになりました。
>>>>> DBFluteから取得したList<Entry>をそのまま利用できないようでした。。。
>>>>>
>>>>> public class HogeDto{
>>>>>     public IList<Hoge> List { get; set; }
>>>>> }
>>>>>
>>>>> public class DataDto{
>>>>>    public string Name { get; set; }
>>>>> }
>>>>>
>>>>> [Control("catList", "DataSource", "List")]
>>>>> public partial class HogeForm : S2Form {
>>>>>  public void Hoge(){
>>>>>     DataDto hoge = new DataDto();
>>>>>     hoge.Name = "ほげほげ";
>>>>>     IList<DataDto> ls = new List<DataDto>();
>>>>>     ls.Add(hoge);
>>>>>     HogeDto dto = new HogeDto();
>>>>>     dto.List = ls;
>>>>>     this.DataSource = dto;
>>>>>  }
>>>>> }
>>>>>
>>>>>
>>>>> ----- Original Message -----
>>>>> 送信者: Hiroaki Fujii<[E-MAIL ADDRESS DELETED]>
>>>>> 宛先: [E-MAIL ADDRESS DELETED]
>>>>> 日付:Tuesday, May, 27, 2008, 03:38 PM
>>>>> 件名: [seasar-dotnet:840] Re:[S2Form]Gridタイプコントロールについて
>>>>>
>>>>>>
>>>>>> 藤井です。
>>>>>>
>>>>>> マッピングに関する認識はそのとおりです。
>>>>>>
>>>>>> 一つ、教えていただきたい点があります。
>>>>>> Gridの表示ですが、0件のように行が表示されていないのでしょうか?
>>>>>> それともDBFluteでの取得件数分だけ、行数があるのでしょうか?
>>>>>> 列の状況も教えていただけると助かります。
>>>>>>
>>>>>>
>>>>>> [E-MAIL ADDRESS DELETED] さんは書きました:
>>>>>>> 山下です。
>>>>>>>
>>>>>>> ご回答ありがとうございます。
>>>>>>>
>>>>>>> 参考にさせていただき、プログラミングさせていただきました。
>>>>>>> しかし、まだ、何かが足らないようで、Gridに反映されませんでした。
>>>>>>> フォーム側の設定としては、DataGridViweのバインド列のプロパティの、
>>>>>>> DataPropertyNameと、IList<Hoge>無いのHoge内のプロパティが
>>>>>>> マッピングして、表示されるという認識でよろしいでしょうか?
>>>>>>>
>>>>>>> DBFlute側でのデータは、取得できているようでした。
>>>>>>>
>>>>>>> 山下 真理
>>>>>>>
>>>>>>>
>>>>>>>> public class HogeDto{
>>>>>>>>     public IList<Hoge> List { get; set; }
>>>>>>>> }
>>>>>>>>
>>>>>>>> [Control("catList", "DataSource", "List")]
>>>>>>>> public partial class HogeForm : S2Form {
>>>>>>>>     public void Hoge(){
>>>>>>>>            HogeDto dto = new HogeDto();
>>>>>>>>             dto.List = (DBFluteの検索メソッドなど)
>>>>>>>>            this.DataSource = dto;
>>>>>>>>     }
>>>>>>>> }
>>>>>>>>
>>>>>>>
>>>>>>> ----- Original Message -----
>>>>>>> 送信者: koyak<[E-MAIL ADDRESS DELETED]>
>>>>>>> 宛先: [E-MAIL ADDRESS DELETED]
>>>>>>> 日付:Monday, May, 26, 2008, 11:31 PM
>>>>>>> 件名: [seasar-dotnet:837] Re:[S2Form]Gridタイプコントロールについて
>>>>>>>
>>>>>>>> 山下様
>>>>>>>>
>>>>>>>> 小谷です。
>>>>>>>>
>>>>>>>> ご利用いただき、ありがとうございます!
>>>>>>>>
>>>>>>>> ご質問の件ですが、
>>>>>>>> >[Control("catList", "DataSource", "List")]
>>>>>>>>
>>>>>>>> この記述によって結び付けられるのは
>>>>>>>> 「catList」の「DataSource」プロパティと、
>>>>>>>> S2Formを継承したクラスがもつDataSourceプロパティに設定されている
>>>>>>>> オブジェクトの「List」プロパティになります。
>>>>>>>> (なので検索結果のリストを直接DataSourceプロパティに
>>>>>>>> 設定しても反映されません)
>>>>>>>>
>>>>>>>> ※対応するドキュメント
>>>>>>>> http://s2container.net.seasar.org/ja/s2windows-s2form.html#grid
>>>>>>>>
>>>>>>>> コードにすると下記のようなイメージです。
>>>>>>>> (スペース省略のため、C#3.5の文法で書いています)
>>>>>>>>
>>>>>>>> public class HogeDto{
>>>>>>>>     public IList<Hoge> List { get; set; }
>>>>>>>> }
>>>>>>>>
>>>>>>>> [Control("catList", "DataSource", "List")]
>>>>>>>> public partial class HogeForm : S2Form {
>>>>>>>>     public void Hoge(){
>>>>>>>>            HogeDto dto = new HogeDto();
>>>>>>>>             dto.List = (DBFluteの検索メソッドなど)
>>>>>>>>            this.DataSource = dto;
>>>>>>>>     }
>>>>>>>> }
>>>>>>>>
>>>>>>>> ボタンか何かでHogeメソッドを呼ぶとDBFluteを使って
>>>>>>>> 検索を行い、結果をcatList上に表示するはずです。
>>>>>>>>
>>>>>>>> ----------------------------------------------------------------
>>>>>>>> koyak
>>>>>>>> [E-MAIL ADDRESS DELETED]
>>>>>>>> ----------------------------------------------------------------
>>>>>>>>
>>>>>>>> 2008/05/26 19:44  <[E-MAIL ADDRESS DELETED]>:
>>>>>>>>> いつもお世話になっております。
>>>>>>>>> 山下です。
>>>>>>>>>
>>>>>>>>> S2Continar 1.3.9
>>>>>>>>> Quill 1.3.9
>>>>>>>>> DBFlute 0.7.2
>>>>>>>>> S2Form
>>>>>>>>>
>>>>>>>>> を利用させて頂いております。
>>>>>>>>> Gridタイプコントロールを利用したく、コーディングをしております。
>>>>>>>>>
>>>>>>>>> DBFluteから取得した内容を、Gridに反映したく、Controlの定義方法について
>>>>>>>>> 質問させていただきます。
>>>>>>>>> Controlの指定は、下記のように設定をしております。
>>>>>>>>>
>>>>>>>>> [Control("catList", "DataSource", "List")]
>>>>>>>>>
>>>>>>>>> DataSourceに渡されるDtoのプロパティ名と、Grid(catList)の、
>>>>>>>>> カラムDataPropertyNameの名称を同じにすることにより、
>>>>>>>>> Grid表示されるようになると思うのですが、認識としましては、
>>>>>>>>> あっておりますでしょうか?
>>>>>>>>> DBFlute側で取得してきて、DataSourceに入れた後に、Gridに反映されて
>>>>>>>>> いなく悩んでおります。
>>>>>>>>>
>>>>>>>>> Gridタイプコントロールについて、今あがっているドキュメント以外に、
>>>>>>>>> 詳細に記載されているドキュメント等がありましたら、
>>>>>>>>> URL等を教えていただけないでしょうか。
>>>>>>>>>
>>>>>>>>> 宜しくお願い致します。
>>>>>>>>>
>>>>>>>>> 山下
>>>>>>>>> _______________________________________________
>>>>>>>>> seasar-dotnet mailing list
>>>>>>>>> [E-MAIL ADDRESS DELETED]
>>>>>>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> seasar-dotnet mailing list
>>>>>>>> [E-MAIL ADDRESS DELETED]
>>>>>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> seasar-dotnet mailing list
>>>>>>> [E-MAIL ADDRESS DELETED]
>>>>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>>>>>
>>>>>> _______________________________________________
>>>>>> seasar-dotnet mailing list
>>>>>> [E-MAIL ADDRESS DELETED]
>>>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>>>>
>>>>> _______________________________________________
>>>>> seasar-dotnet mailing list
>>>>> [E-MAIL ADDRESS DELETED]
>>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>>>
>>>> _______________________________________________
>>>> seasar-dotnet mailing list
>>>> [E-MAIL ADDRESS DELETED]
>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>>
>>>
>>>
>>> --
>>>  Kazuhiko Kikuchi <[E-MAIL ADDRESS DELETED]>
>>>  Microsoft Valueable Professional - Visual C# 2004-2007
>>> _______________________________________________
>>> seasar-dotnet mailing list
>>> [E-MAIL ADDRESS DELETED]
>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>
>> _______________________________________________
>> seasar-dotnet mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>
>
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>


seasar-dotnet メーリングリストの案内