- - PR -
GRIDVIEW(DateGrid)の機能について
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-04-21 10:14
行が選択された状態になってないんじゃないでしょうか。
なので、SelectRowが存在しない、と。 ボタンからのイベントのとり方で列の判定の仕方は変わってくるかな? | ||||||||
|
投稿日時: 2006-04-21 10:53
DG.SelectRow が null(Nothing) になっていませんか?
RowCommand イベント内で処理を行っているのなら e.CommandArgument などから行を特定してください。 | ||||||||
|
投稿日時: 2006-04-21 11:44
確かに選択された状態になっていないみたでした。
e.CommandArgumentなどで行を特定するやりかたがよくわからないのですが・・? | ||||||||
|
投稿日時: 2006-04-21 12:51
たしか CommandArgument や RowCommand のヘルプに乗っていたとおもいますよ。 http://msdn2.microsoft.com/ja-JP/library/system.web.ui.webcontrols.gridview.rowcommand(VS.80).aspx | ||||||||
|
投稿日時: 2006-04-21 16:22
Protected Sub DG1_RowCommand(ByVal sender As Object, ByVal e As GridViewCommandEventArgs)
Select Case e.CommandName Case "change" Dim index As Integer = Convert.ToInt32(e.CommandArgument) Dim row As GridViewRow = DG1.Rows(index) サンプルを参考に上記のようにしたのですが、indexのところでformatexceptionというエラーが表示されました。 ボタンをbottunfieldではなく asp:bottun id=DGB と組込みにしているからなのでしょうか? | ||||||||
|
投稿日時: 2006-04-21 17:18
例外の内容はどういうものですか? また、例外が発生したときに e.CommandArgument には何が格納されていますか? このあたりはブレイクポイントなりで確認できると思うのですが・・・
あう・・・テンプレートカラムにしたら例外がでた、 ButtonField ではなく テンプレートカラムの ASP:Button にしているのはなぜですか? | ||||||||
|
投稿日時: 2006-04-21 18:23
ボタンの形がグリットで表示されるよりもよかったのでテンプレート列にして貼り付けたのです。こんな理由なんでテンプレートにするとできないならbottunfieldにします。
| ||||||||
|
投稿日時: 2006-04-21 18:37
ButtonFieldを使うと自動的に適切なCommandArgumentを負荷してくれるみたいですね。
テンプレートにしてボタンを貼り付けてるなら自分でその部分を記述(というかスマートタグからバインディングの設定)してあげればいいだけじゃないかな。 |