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

koyak [E-MAIL ADDRESS DELETED]
2008年 5月 28日 (水) 11:27:59 JST


山下様

小谷です。

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