- PR -

GridView ButtonFiled についての質問

1
投稿者投稿内容
vion
会議室デビュー日: 2007/10/03
投稿数: 13
投稿日時: 2007-10-03 11:58
初めまして、よろしくお願いします。
asp.net(vb)で開発しています。
ひとつの問題が解決できなくて困っています。誰か助けてください。

下記のようにDataTextFieldでButtonField にデータをバインドしました。
<asp:ButtonField buttontype="Link" DataTextField="aa_bb" HeaderText="button" CommandName="select"/>

VBファイルではRowCommandイベントに以下のように書いています。

If e.CommandName = "Select" Then

Dim index As Integer = Convert.ToInt32(e.CommandArgument)
Dim selectedRow As GridViewRow = DataGrid1.Rows(index)
Dim contactCell As TableCell = selectedRow.Cells(0)
Dim contact As String = contactCell.Text
MsgBox("You selected " & contact & ".")

End If

contactの値がいつも空文字ですが、なぜでしょうか。
buttonに表示されている文字列(データベースからバインドされた文字列)を取得したいのですが。。。



どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2007-10-03 12:08
contactを設定している行あたりにブレークポイントをつけて、contactCellの
中身がどのようになっているか、とかを調べていくといろいろわかるんじゃ
ないかと思いますが。。。

Cellが持ってるTextの値じゃなくて、Cellの中にあるボタンのTextの値を
取り出さないといけないんじゃないでしょうか。
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2007-10-03 13:11
引用:

vionさんの書き込み (2007-10-03 11:58) より:

MsgBox("You selected " & contact & ".")


本題とは関係ないところですが、この行では何をしようとしていますか?

_________________
かるあ のメモスニペット
vion
会議室デビュー日: 2007/10/03
投稿数: 13
投稿日時: 2007-10-03 13:44
どっとねっとふぁん さん:
  ご指摘ありがとうございます。ご指摘通りやって見ましたが、まだ未熟なもので解  決策が見つからないです。

かるあ さん:
  MsgBox("You selected " & contact & ".")
  このソースは特に意味はありません。MSDNからそのまま持って来たものです。ただ  Msgboxです。 
vion
会議室デビュー日: 2007/10/03
投稿数: 13
投稿日時: 2007-10-03 15:22
問題を解決しましたので、クローズします。
皆さん、どうもありがとうございました。
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2007-10-03 15:45
どう解決されたのか教えてもらえませんか?
でないと、同じような問題でひっかかった人が検索してきてこの掲示板に
たどりついたとしても何の答えももらえなくてがっかりしてしまいますよね。。。
vion
会議室デビュー日: 2007/10/03
投稿数: 13
投稿日時: 2007-10-03 16:49
page_loadイベントで以下のように書きました。

con.ConnectionString = strCon
con.Open()
ap = New OracleDataAdapter(strSql, con)
ap.Fill(ds, "テーブル")

DataGrid1.DataSource = ds
DataGrid1.DataBind()

そしてRowCommandイベントでこんな風に書きました。
If e.CommandName = "Select" Then
Dim index As Integer = Convert.ToInt32(e.CommandArgument)
Dim cell_1 As String = ds.Tables(0).Rows(index).Item(0).ToString
Dim cell_2 As String = ds.Tables(0).Rows(index).Item(1).ToString
End If

これでcell(0)やcell(1)を値を取得しました。
あんまりいい方法ではないと思いますが、とりあえずこれで行きたいと思います。
1

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