【问题标题】:How to fetch data from gridview in ItemTemplate in ASP.NET 2如何从 ASP.NET 2 中 ItemTemplate 中的 gridview 获取数据
【发布时间】:2011-11-01 09:18:47
【问题描述】:

我有一个gridview,其中每列都有两个模板字段。一个是 ItemTemplate,另一个是 EditItemTemplate。现在在 EditItemTemplate 中,它将显示一些文本框,我可以在其中执行必要的编辑。我可以使用以下代码轻松地从每个单元格中获取数据-

Dim gvRow As GridViewRow = gvView.Rows(e.RowIndex)

CType(gvRow.FindControl("controlID"), TextBox).Text

但是,当网格视图不处于 ItemTemplate 中的编辑模式时,我如何获取数据。我尝试了以下方法-

Dim rowView As DataRowView = CType(gvRow.DataItem, DataRowView)

Dim something As String = rowView("data_field").ToString()

但是它获取异常对象引用并没有设置为对象的实例。这可能是因为在实例化行时应该在 RowDataBound 之类的方法中使用上面的代码。但我必须从其他方法获取数据。任何想法如何做到这一点。

再次澄清,我想在 gridview 列处于 ItemTemplate 模式时获取数据。

【问题讨论】:

    标签: asp.net vb.net gridview itemtemplate


    【解决方案1】:

    我猜你想在某些命令中读取网格视图列的值。如果您有gvRow 这是您的gridview 的行,那么您可以使用.Cell(index).Text 来获取列的值。

    如果您使用模板字段并使用某些控件来显示列数据,则必须执行gvRow.findControl("controlId") 然后将其转换为适当的控件对象以从中读取数据。

    愉快的编码

    【讨论】:

    • 不,我试过了。无论我做什么 .Cell(index).Text 都会返回 "" 。那是一个空字符串。
    • 您使用的是哪个事件?请把 aspx 和 vb/cs 代码贴在这里,我们可以帮到你
    • 我正在使用 onClick 事件。无法给出整个代码。只需查看以下行。我究竟做错了什么 ?? Dim test As String= Me.gvView.Rows(index).Cells(index).Text 虽然有一个值,但我最终将测试设置为“”
    • 好吧,有道理,您是否使用任何控件来显示列数据?在这种情况下,您必须执行 Me.gvView.Rows(index).FindControl(ControlId) 来获取控件,然后从中获取值
    • 好吧,我在 editItemTemplate 中使用了一个控件,但在 itemTemplate 中我使用的是 DataBinder。那么当我不处于编辑模式时如何获取数据
    【解决方案2】:

    您可以考虑直接访问 gridview 数据源。如果您允许在网格上进行排序/分页,则在执行此操作时要小心,因为数据源的索引会有所不同。

    【讨论】:

      【解决方案3】:

      两个答案都很好,非常感谢。

      我花了更多时间尝试获取 GridView Cell 值,但没用,我不知道问题出在哪里。当我阅读您的答案时,我发现我的 GridView 有模板字段,所以这就是问题所在。

      【讨论】:

      • 这不是答案!这应该在评论中(如果需要)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多