- PR -

DataGridのセルデータ取得方法

1
投稿者投稿内容
damepg
大ベテラン
会議室デビュー日: 2003/03/19
投稿数: 229
お住まい・勤務地: 東京都内
投稿日時: 2003-03-24 17:45
VB.NETによるWeb開発をしています。

下記の様にDataGridの選択したセルを取得しようとしたのですが、
「オブジェクト参照がオブジェクト インスタンスに設定されていません。 」
のメッセージが出てしまいます。
どういうことでしょうか?
解決方法をアドバイスしてください。

strDsp = strDsp & "&Week=" & GridItem.Cells(2).Text
strDsp = strDsp & "&Status=" & GridItem.Cells(3).Text

---------------------------------------------------------------------------

Private Sub DataGrid1_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.ItemCommand

Dim GridItem As DataGridItem = DataGrid1.SelectedItem

Select Case e.CommandName

Case "SelectLink" '「週」のリンクが押された時

Dim strDsp As String = "SecurityReport.aspx"

'画面先URL作成
strDsp = strDsp & "?SiteID=" & DDL_EastWest.SelectedItem.Text
strDsp = strDsp & "&SR_Year=" & DDL_Year.SelectedItem.Text
strDsp = strDsp & "&SR_Month=" & DDL_Month.SelectedItem.Text
strDsp = strDsp & "&Week=" & GridItem.Cells(2).Text
strDsp = strDsp & "&Status=" & GridItem.Cells(3).Text

'画面遷移
Response.Redirect(strDsp)

End Select

End Sub
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2003-03-24 21:15
「オブジェクト参照がオブジェクト インスタンスに設定されていません。 」
というくらいですから、GridItemがNothingくさいですね。
DataGrid.SelectedItemプロパティは選択されていないときはNothingを返すと思いました。

そんな単純じゃないって?
damepg
大ベテラン
会議室デビュー日: 2003/03/19
投稿数: 229
お住まい・勤務地: 東京都内
投稿日時: 2003-03-24 21:43

DataGrid1はForm_Loadで表示しています。
DataGrid1_ItemCommand()する前にForm_Loadが走ると思いますが、
この時はisPostBackでGridを表示させない様なロジックになってます。
このためDataGrid1がNothingなのでしょうか?
でも、DataGrid1_SelectedChange()では、きちんと取得出来ているのですが。
なぜでしょうか?

引用:

一郎さんの書き込み (2003-03-24 21:15) より:
「オブジェクト参照がオブジェクト インスタンスに設定されていません。 」
というくらいですから、GridItemがNothingくさいですね。
DataGrid.SelectedItemプロパティは選択されていないときはNothingを返すと思いました。

そんな単純じゃないって?

焼きそば
ベテラン
会議室デビュー日: 2002/11/06
投稿数: 86
お住まい・勤務地: 東京
投稿日時: 2003-03-25 08:46
引用:

damepgさんの書き込み (2003-03-24 17:45) より:

strDsp = strDsp & "&Week=" & GridItem.Cells(2).Text
strDsp = strDsp & "&Status=" & GridItem.Cells(3).Text




GridItemをe.Itemsに置き換えてみても値が取れないでしょうか?

strDsp = strDsp & "&Week=" & e.Items.Cells(2).Text
strDsp = strDsp & "&Status=" & e.Items.Cells(3).Text
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2003-03-25 08:57
とりあえず、DataGrid1がNothingなのか、DataGrid1.SelectedItemがNothingなのか、Nothingではないのか調べて見たらどうです。

後、「DataGrid1はForm_Loadで表示しています」が何を指しているのか分からないのですが。
表示(HTMLを書き出す)のはRender()というメソッドです。
それが実行される前は、表示するもしないもありません。
具体的にForm_Loadでは何をしているのですか?
damepg
大ベテラン
会議室デビュー日: 2003/03/19
投稿数: 229
お住まい・勤務地: 東京都内
投稿日時: 2003-03-25 10:11
下記のやり方に変えてみたところ、きちんとDataGridからデータが
取得できました。
アドバイスしてくださった皆様に感謝します。
ありがとうございました。

引用:


GridItemをe.Itemsに置き換えてみても値が取れないでしょうか?

strDsp = strDsp & "&Week=" & e.Items.Cells(2).Text
strDsp = strDsp & "&Status=" & e.Items.Cells(3).Text


1

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