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

菊池和彦 [E-MAIL ADDRESS DELETED]
2008年 5月 28日 (水) 11:43:12 JST


菊池です

 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 メーリングリストの案内