- - PR -
DataGridの行選択方法について
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-06-02 21:52
会議室の皆さんはじめまして。
ASP.NET+VB.NETで開発しています。 DataGridについてですが、行を選択する際にプロパティビルダによる 「選択」ボタンをクリックする方法でなくて、行の任意の場所をクリックして 選択状態にすることが出来るでしょうか。 ちょうどListViewの詳細表示のようなイメージです。 どなたかよろしくお願いします。 |
|
投稿日時: 2003-06-03 13:27
手抜きアイデアですが、
DataGridのすべての列をButtonColumnのリンクボタンにして、 スタイルを工夫すれば、似たような感じになるかな、と。 |
|
投稿日時: 2003-06-04 16:05
仕様書無しさんありがとうございます。
ちょっと挑戦してみます。 やっぱりスンナリは厳しいですか・・・ |
|
投稿日時: 2003-06-05 00:31
昔、こんな感じでできたような気がします。
DataGridの一番左に選択列を作って、その行を不可視に設定し、 以下のコードをPreRenderかなにかに書いてあげると、DataGridItemがクリックされたときに、選択ボタンがクリックされたことになった気がします。なにぶん1年くらい前の話なので微妙です。間違ってたらごめんなさい。 foreach( DataGridItem dgi in dgUserList.Items ) { strScript = Page.GetPostBackEventReference( dgi.Cells[0].Controls[0], dgi.ItemIndex.ToString() ); dgi.Attributes.Add( "onClick", strScript); } |
|
投稿日時: 2003-06-05 20:16
GUNNMさん、ありがとうございます。
当方VBなので以下のコードで出来ました。 Private Sub DGList_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles DGList.PreRender Dim dgi As DataGridItem Dim strScript As String For Each dgi In DGList.Items strScript = GetPostBackEventReference(dgi.Cells(0).Controls(0), dgi.ItemIndex.ToString()) dgi.Attributes.Add("onClick", strScript) Next End Sub ただ、下の方を選択しても再表示時に一番上から表示されてしまいますが こればっかりは仕方ないと思っています。 ありがとうございました。 |
|
投稿日時: 2003-06-05 20:27
自己レスです。
> ただ、下の方を選択しても再表示時に一番上から表示されてしまいますが > こればっかりは仕方ないと思っています。 SmartNavigation="True"で解決しました。 |
|
投稿日時: 2003-06-05 22:26
何度もすいません。
今度はクリック時選択行の ある列の値を取得できなくて困っています。 取得したい列は2列目でテンプレート上のラベル(ID:LblCode)にバインドしてあります。 Private Sub DGList_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DGList.SelectedIndexChanged Label1.Text = DGList.SelectedItem.ItemIndex Label2.Text = DGList.Items(DGList.SelectedItem.ItemIndex).Cells(1).Text End Sub 上記コードでlabel1には選択した行のindexが取得できているのですが Label2に肝心の値が取得できません。 どなたかよろしくお願いします。 |
|
投稿日時: 2003-06-06 09:36
最後が
Cells(1).Controls(0).Text とかで、どうでしょう? 数が多い場合はDataGridのデータソースから データを引っ張ってきたほうが、すっきりすると思います。 |