- - PR -
DataGridの非可視の列の値を取得したい。
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-05-08 22:50
題名そのままです。
VS.NETでWebformにDataGridをおいて、 DBからFillしたDataSetをデータソースに割り当てます。 そうすると普通にDataGridに自動的に列が展開されます。 そこで、DataGridのプロパティーで列を非可視に出来るのですが。 その、非可視にした列の中にあるであろうデータを取得したいのですが 出来るんでしょうか? データベースとの連携ツールを作成しているのですが、 プライマリーキーがクライアントに見えてはかっこ悪いと思い非可視にしました。 けれども、データの更新にはもちろんPKを使いますので取得したいのです。 もしよかったらヒントください。 |
|
投稿日時: 2003-05-09 09:28
非可視にした列がBoundColumnなら、
DataGrid1.Items[x].Cells[y].Text とか e.Item.Cells[y].Text (eはDataGridItemEventArgs) で普通にとってこれると思いますよ。 |
|
投稿日時: 2003-05-09 10:54
すいません、すべての列はテンプレート列に変更していました。
DataGrid1.Items[1].Cells[1].Controls[1].Text では取得できました、しかし e.Item.Cells[0].Controls[1].Text e.Item.Cells[1].Controls[1].Text // 非可視 e.Item.Cells[2].Controls[1].Text のこれらの結果は 1番目:"更新" 更新用列のボタン 2番目:"" なぜか空欄 3番目:"100-500" これは意図した正しい値です。 となってしまいます。 DataGridItemEventArgsからは非可視列の中のTextBoxの中のTextは取れないってことに なってるんですかね。 もうちょっと調べてみます。 |
|
投稿日時: 2003-05-09 17:59
とりあえず、出来ましたのでご報告いたします。
ですがあっているのか心配です。 ソートの都合もあり、DataGridにDVというDataViewをデータソースとしてバインドしました。 それで、Update_Commandメソッド内に int PK = (int)this.DV[e.Item.DataSetIndex].Row["PrimaryKey"]; として、編集ボタンを押している列の非可視のプライマリーキーである PrimaryKeyの値が取れました。 DVのインデクサに「e.Item.DataSetIndex」を使ったんですが 名前からしてこれってDataSetクラス専用って事ではないですよね? というか、DataGridのプロパティーですよね。 DataGridの〜行目って意味で使ったんですが、動いてるんでこれでよしとしてます。 |
1