- - PR -
DataGrid内のデータ取得について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-02-12 16:20
はじまめして。
以下のようなデータグリッドがあります。 <Columns> <asp:BoundColumn DataField="SYOCD" HeaderText="品番"> <HeaderStyle Width="70px"></HeaderStyle> </asp:BoundColumn> <asp:BoundColumn DataField="SYONAME" HeaderText="品名"> <HeaderStyle Width="100px"></HeaderStyle> </asp:BoundColumn> <asp:TemplateColumn HeaderText="注文数"> <ItemTemplate> <asp:TextBox id=Textbox1 runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"URIAGESU_SYUKEI") %>'> </asp:TextBox> </ItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn HeaderText="発注者コード"> <ItemTemplate> <asp:TextBox id="hattyusya" runat="server" Text="ddd"></asp:TextBox> </ItemTemplate> </asp:TemplateColumn> </Columns> 品番と品名のデータ取得方法は以下のようしてに取得できました。 '品番取得(xは行数) Dim syoCD as String= grdMISEBETSU_URIAGE_SYUKEI.Items(x).Cells(0).Text '品名取得(xは行数) Dim syoNM as String = grdMISEBETSU_URIAGE_SYUKEI.Items(x).Cells(1).Text しかし、ItemTemplateを使用している、注文数、発注者コードは上記と同様では取得できません。 '注文数取得(xは行数) Dim orderSU as String= grdMISEBETSU_URIAGE_SYUKEI.Items(x).Cells(2).Text '発注者コード取得(xは行数) Dim hattyusyaCD as String = grdMISEBETSU_URIAGE_SYUKEI.Items(x).Cells(3).Text ItemTemplateを使用した列のデータ取得方法がわかりません。教えていただけたらと思います。 | ||||
|
投稿日時: 2005-02-12 17:48
Cells(2).FindControlしましょう。
| ||||
|
投稿日時: 2005-02-13 01:50
Linさんとかぶりますが、
ItemCommandなどのイベントプロシージャで、 Private Sub grdMISEBETSU_URIAGE_SYUKEI_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataListCommandEventArgs) Handles grdMISEBETSU_URIAGE_SYUKEI.ItemCommand if e.CommandName="コマンド名" then Dim orderSU as String=CType(e.item.FindContorol("TextBox1"),TextBox).Text end if end sub としてみてはいかがでしょうか。 | ||||
|
投稿日時: 2005-02-14 11:58
お世話になります。
試してみたのですが @ Dim orderSU as String = grdMISEBETSU_URIAGE_SYUKEI.Items(i).Cells(2).FindControl とすると、「この引数の数を受け付けるFindControlがないため、オーバーロードの解決に失敗しました」 と出力されてしまいました。 A Private Sub grdMISEBETSU_URIAGE_SYUKEI_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles grdMISEBETSU_URIAGE_SYUKEI.ItemCommand If e.CommandName = "コマンド名" Then Dim orderSU As String = CType(e.Item.FindContorol("TextBox1"), TextBox).Text End If End Sub とすると、「FindControlはSystem.Web.UI.WebControls.DataGridItemのメンバではありません」と出力されてしまいました。 記述漏れなのですが、データを受け取るのは、ボタンが押された際に取得したいです。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click '品番取得(xは行数) Dim syoCD as String= grdMISEBETSU_URIAGE_SYUKEI.Items(x).Cells(0).Text '品名取得(xは行数) Dim syoNM as String = grdMISEBETSU_URIAGE_SYUKEI.Items(x).Cells(1).Text しかし、ItemTemplateを使用している、注文数、発注者コードは上記と同様では取得できません。 '注文数取得(xは行数) Dim orderSU as String= grdMISEBETSU_URIAGE_SYUKEI.Items(x).Cells(2).Text '発注者コード取得(xは行数) Dim hattyusyaCD as String = grdMISEBETSU_URIAGE_SYUKEI.Items(x).Cells(3).Text End Sub いい方法ありますでしょうか? | ||||
|
投稿日時: 2005-02-14 12:20
こんにちは。
FindControlの使い方を一度ヘルプ等で確認した方が良いかと。。。 [ メッセージ編集済み 編集者: SE卵 編集日時 2005-02-14 12:25 ] | ||||
|
投稿日時: 2005-02-14 13:25
皆様、ありがとうございました。
ようやくクリアできました。 |
1