- PR -

DataGridの行選択方法について

投稿者投稿内容
GUNNM
常連さん
会議室デビュー日: 2002/01/23
投稿数: 30
お住まい・勤務地: 横浜
投稿日時: 2003-06-06 19:05
選択されたDataGridItemに対して、
     Label LblCode = (Label)item.FindControl( "LblCode" );
で、ラベルコントロールが取れると思います。
C#のコードですみません。
私はVB.NETの経験がほとんど無いので、
ぬるぴょん
ベテラン
会議室デビュー日: 2003/06/02
投稿数: 62
投稿日時: 2003-06-06 20:20
仕様書無しさん、GUNNMさんありがとうございます。

試したところ以下のようになりました。

>仕様書無しさん
Label2 = DGList.Items(DGList.SelectedItem.ItemIndex).Cells(1).Controls(0).text

'text' は 'System.Web.UI.Control' のメンバではありません。
で、実行できませんでした。


>GUNNMさん、自分なりにVBで書いてみたところ

Dim tmpLabel As Label
tmpLabel = DGList.FindControl("LblCode")
Label2.Text = tmpLabel.Text

例外の詳細: System.NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません。

と行選択時にエラーが出ます。


で、いろいろ試した結果以下のコードで値が取得できました。

Dim tmpLabel As Label
tmpLabel = DGList.Items(DGList.SelectedItem.ItemIndex).Cells(1).FindControl("LblCode")

Label2.Text = tmpLabel.Text

うまくいったのですが、上の2つのコードがなぜエラーになるのかこれから勉強してみます。
ありがとうございました。
matsu
会議室デビュー日: 2003/06/22
投稿数: 1
投稿日時: 2003-06-22 12:46
VB.NETを使い始めました。

ぬるぴょんさんの以下の書き込みのとおりにやろうとするのですが、
Prerenderがないと、怒られます。DGListはDATAGRIDの名前ですか?
もうすこし、詳しく教えていただけませんか。
よろしくお願いします。

> Private Sub DGList_PreRender(ByVal sender As Object, ByVal e As
> System.EventArgs) Handles DGList.PreRender
ぬるぴょん
ベテラン
会議室デビュー日: 2003/06/02
投稿数: 62
投稿日時: 2003-06-27 16:40
matsuさん、こんにちは

PreRenderはデータグリッドのイベントなので
VisualStudioをお使いであれば、コードエディタ画面の左上の
オブジェクト選択コンボボックスからデータグリッド名を選択し、
右上のイベント選択コンボボックスからPreRenderを選択していけば
自動的に作成されると思います。

スキルアップ/キャリアアップ(JOB@IT)