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

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

C# と VB.NET の入門サイト

Re[5]: FlexgridにDatatableの任意の列を設定する


(過去ログ 112 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■66112 / inTopicNo.1)  FlexgridにDatatableの任意の列を設定する
  
□投稿者/ パル (1回)-(2013/04/02(Tue) 04:11:03)

分類:[.NET 全般] 

こんにちは
VB2008です。

Flexgridの任意の列にDatatableの任意の列を設定したいのですが、
どのようにすればよいのでしょうか。

普通のDatagridviewだと

DGV.DataSource = dataTable

DGV.Column("列名").DataPropertyName = "Datatableの任意の列"

でできたのですが、Flexgridに変更しなければいけなくなり初めて利用するものでよく分かりません。
よろしくお願いいたします。
引用返信 編集キー/
■66114 / inTopicNo.2)  Re[1]: FlexgridにDatatableの任意の列を設定する
□投稿者/ howling (326回)-(2013/04/02(Tue) 11:58:10)
No66112 (パル さん) に返信

こんにちわ。
さっぱり触ったことが無いのですが、このツールって付属のドキュメントがかなり強力なようです。
というか、ほぼドキュメント読め、ってことのようですが。

http://download.grapecity.com/help/componentone/windowsphone/default.htm?turl=documents%2Fflexgrid%25E3%2581%25AE%25E4%25BD%25BF%25E3%2581%2584%25E6%2596%25B9.htm

とりあえず、ここに書かれてることを見ると、

DataSourceの代わりにItemsSourceを使用する(と、どうも指定したテーブル全てが列となって表示される模様)
hoge.Column("列名")の代わりにhoge.Columns["列名"]として、これのVisibleをfalseにすることで列を整える

…という方法で、実現自体は可能なようです。

…VBのソースが無いのが残念ですね…。
引用返信 編集キー/
■66118 / inTopicNo.3)  Re[2]: FlexgridにDatatableの任意の列を設定する
□投稿者/ shu (254回)-(2013/04/02(Tue) 14:05:24)
No66114 (howling さん) に返信

> http://download.grapecity.com/help/componentone/windowsphone/default.htm?turl=documents%2Fflexgrid%25E3%2581%25AE%25E4%25BD%25BF%25E3%2581%2584%25E6%2596%25B9.htm
WindowsPhoneのページなので

http://download.grapecity.com/help/componentone/flexgrid/
こっちの方がよいのかなと思います。


No66112 (パル さん) に返信
DataSourceの設定は通常のDataGridViewと同じようです。
手動でDataPropertyを設定する方法は分かりませんでした。

引用返信 編集キー/
■66119 / inTopicNo.4)  Re[1]: FlexgridにDatatableの任意の列を設定する
□投稿者/ shu (255回)-(2013/04/02(Tue) 14:09:02)
No66112 (パル さん) に返信

DataSourceにするデータの並び順を工夫すれば列の場所を合わせることが出来るかと思います。
やってみないと分からない事なので正しいのかは分かりません。
引用返信 編集キー/
■66155 / inTopicNo.5)  Re[2]: FlexgridにDatatableの任意の列を設定する
□投稿者/ パル (2回)-(2013/04/04(Thu) 07:11:03)
お二方ありがとうございます。

とりあえず、表示させることはできました。
方法としては、shu さんの

> DataSourceにするデータの並び順を工夫すれば列の場所を合わせることが出来るかと思います。

を参考に、まずDataSourceに設定した後必要な行を追加・削除することで表示したい状態に持っていくことができました。

しかし、この後表示させたGridにデータを反映することができません。

やりたいこととしては、以下の状態で表示させているところに

|チェック|内容|コメント|値(非表示)|

DBからデータを取得し、値と同じ所にコメントとチェックを以下のように反映させたいのですが、反映されません。

For intCnt = 1 To Grid.Rows.Count - 1
'共有情報NOと同じ行に表示
If Grid(intCnt, "値") = DBから取得した(値) Then
Grid(intCnt, "チェック") = True
Grid(intCnt, "コメントT") = DBから取得した(コメント)
End If
Next

データテーブルを設定しているため無理なのでしょうか?

引用返信 編集キー/
■66156 / inTopicNo.6)  Re[3]: FlexgridにDatatableの任意の列を設定する
□投稿者/ shu (263回)-(2013/04/04(Thu) 07:40:28)
No66155 (パル さん) に返信
>
> データテーブルを設定しているため無理なのでしょうか?

そうなのかもしれません。実環境で試して駄目なのであればそう判断するしか
ないです。DataSourceへバインドしている場合、バインドしているデータを
修正すると反映されると思うのですがどうでしょう?
引用返信 編集キー/
■66157 / inTopicNo.7)  Re[4]: FlexgridにDatatableの任意の列を設定する
□投稿者/ Ruku (4回)-(2013/04/04(Thu) 10:47:08)
ちょっと整理しつつ。

バインド自体は C1FlexGrid の DataSource に DataTable を指定すれば良いかと。
列の対応は、DataColumn の Name プロパティと (C1FlexGrid の) Column の Name プロパティを合わせれば良いと思います。

その上で、バインドした DataTable を編集すればグリッドに反映されます。

以下テスト。変数名は適当に脳内変換で。

var table = new DataTable();
table.Columns.Add("Value", typeof(int));
table.Columns.Add("Time", typeof(DateTime));
table.Columns.Add("Text", typeof(string));

table.Rows.Add(10, new DateTime(2013, 1, 1), "hoge1");
table.Rows.Add(20, new DateTime(2013, 1, 2), "hoge2");
table.Rows.Add(30, new DateTime(2013, 1, 3), "hoge3");

c1FlexGrid1.AutoGenerateColumns = false;
c1FlexGrid1.Cols[2].Name = "Text";
c1FlexGrid1.Cols[4].Name = "Time";
c1FlexGrid1.DataSource = table;

値の編集は
table.Rows[1]["Text"] = "@@@";

とか。

引用返信 編集キー/
■66162 / inTopicNo.8)  Re[5]: FlexgridにDatatableの任意の列を設定する
□投稿者/ パル (3回)-(2013/04/05(Fri) 01:06:51)
みなさんありがとうございます。

No66157 (Ruku さん)
ありがとうございます。あとで研究してみます。
今回は少し時間もないので、最初の表自体もDBから取得したものを表示させそれに対して、DB検索したデータを表示させることにしました。



解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -