【发布时间】:2014-03-24 17:29:05
【问题描述】:
有人可以告诉我如何从数据网格中获取值吗?我几乎尝试了所有方法:
.aspx页面中的代码:
<asp:GridView ID="GridViewInbox" runat="server">
<Columns>
<asp:TemplateField>
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
在 aspx.vb 页面后面的代码中,我试图获取这样的字符串值:
For Each row As GridViewRow In GridViewInbox.Rows
If row.RowType = DataControlRowType.DataRow Then
... ??? ... Dim someString As String = row.Cells(1).Text not working
End If
Next
带有问号的部分我需要弄清楚其中的内容以确保我从数据网格中获取字符串。在调用 Cells 之前是否有额外的步骤,或者这就是我所需要的????我如何从数据网格中获取值????
更新:
当我尝试这样做时:
GridViewInbox.Rows(1).Cells(1).ToString()
我明白了:
System.Web.UI.WebControls.DataControlFieldCell
当我尝试这样做时:
GridViewInbox.Rows(1).Cells(1).Text
我什么都没有。
这就是我绑定数据网格的方式:
GridViewInbox.DataSource = dataTable <- this here is System.Data.DataTable
GridViewInbox.DataBind()
所有数据显示。我在这里谈论的代码就在 GridViewInbox.DataBind() 之后
更新:
.aspx 页面模板字段绑定
<asp:TemplateField SortExpression="From">
<HeaderTemplate>
<asp:LinkButton>From</asp:LinkButton>
</HeaderTemplate>
<ItemTemplate>
<asp:Label
ID="btnOpenFrom"
runat="server"
CommandArgument='<%#DataBinder.Eval(Container.DataItem, "From")%>'>
<%#DataBinder.Eval(Container.DataItem, "From")%>
</asp:Label>
</ItemTemplate>
<ItemStyle Width="20%" />
</asp:TemplateField>
这是我的完整代码,也许这会有所帮助:
Public Function GetDataTable () As DataTable
Dim dataTable As New DataTable("Some Name")
dataTable.Columns.Add("ItemOne", GetType(String))
dataTable.Rows.Add(...) <- add rows data here, it matches the amount of columns
Return dataTable
End Function
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
...
GridViewTest.DataSource = GetDataTable()
GridViewInbox.DataBind()
For Each row As GridViewRow In GridViewTest.Rows
If row.RowType = DataControlRowType.DataRow Then
... <- trying to get at the value in a datagrid
End If
Next
...
End Sub
【问题讨论】:
-
您收到什么错误信息?您的 aspx 代码似乎不包含任何数据。比如绑定字段。这可能是执行 for 循环后您没有收到任何数据的原因。
-
@AdityaBokade 我在这里列出的内容太多了。一切正常我能够对网格进行排序并显示数据。一切正常!!!!我的意思是我能说得有多清楚!!!我的问题是从数据网格中获取值的正确方法是什么我需要一个基于我放在那里的代码假设一切正常。
-
您的代码是我用 C# 编写的,并且运行良好。我拿了一个gridview、一个标签和一个按钮。在单击按钮时,我编写了与您的代码几乎相同的代码,并且可以正常工作。但我是用 C# 编写的。
-
我用 UPDATE 部分更新了原始问题。
-
向我们展示您的
ItemTemplate的一小部分。我想看看你在那里有什么类型的控件。并显示您正在执行此循环的方法。
标签: vb.net visual-studio visual-studio-2012 datagrid datatable