- - PR -
DataGridのセルデータ取得方法
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 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 | ||||
|
投稿日時: 2003-03-24 21:15
「オブジェクト参照がオブジェクト インスタンスに設定されていません。 」
というくらいですから、GridItemがNothingくさいですね。 DataGrid.SelectedItemプロパティは選択されていないときはNothingを返すと思いました。 そんな単純じゃないって? | ||||
|
投稿日時: 2003-03-24 21:43
DataGrid1はForm_Loadで表示しています。 DataGrid1_ItemCommand()する前にForm_Loadが走ると思いますが、 この時はisPostBackでGridを表示させない様なロジックになってます。 このためDataGrid1がNothingなのでしょうか? でも、DataGrid1_SelectedChange()では、きちんと取得出来ているのですが。 なぜでしょうか?
| ||||
|
投稿日時: 2003-03-25 08:46
GridItemをe.Itemsに置き換えてみても値が取れないでしょうか? strDsp = strDsp & "&Week=" & e.Items.Cells(2).Text strDsp = strDsp & "&Status=" & e.Items.Cells(3).Text | ||||
|
投稿日時: 2003-03-25 08:57
とりあえず、DataGrid1がNothingなのか、DataGrid1.SelectedItemがNothingなのか、Nothingではないのか調べて見たらどうです。
後、「DataGrid1はForm_Loadで表示しています」が何を指しているのか分からないのですが。 表示(HTMLを書き出す)のはRender()というメソッドです。 それが実行される前は、表示するもしないもありません。 具体的にForm_Loadでは何をしているのですか? | ||||
|
投稿日時: 2003-03-25 10:11
下記のやり方に変えてみたところ、きちんとDataGridからデータが
取得できました。 アドバイスしてくださった皆様に感謝します。 ありがとうございました。
|
1