【问题标题】:Wrong value returning from GridView从 GridView 返回的值错误
【发布时间】:2014-10-21 12:07:13
【问题描述】:

我正在使用由 SQL Server 存储过程填充的 GridView,例如。 当试图从 GV 中提取特定的单元格值时,我的代码返回了错误的值和类型;我不知道为什么:

String itemSummary = e.Row.Cells[4].Text;
String itemTotal = e.Row.Cells[8].Text;

虽然数据库表中的数据是 double 18,2 类型,并且 sproc 正在检索数据并成功填充 GV,但当我去提取 itemSummary 时,代码返回“Cn”。以完全相同的方式提取的 itemTotal 正在按预期返回。看着 GridView,我什至看不到“Cn”的起源。

当我使用断点单步执行代码时,我可以深入到行的 ItemArray 并清楚地看到行索引 [4] 处的预期值,但 e.Row.Cells[4].Text 仍然返回字符串“Cn”。

e.Row.Cells[8].Text 再次返回与行的 ItemArray 中的行索引 [8] 表示的值相同的值。

我需要这方面的帮助;任何想法将不胜感激..

【问题讨论】:

  • 尝试使用列名检索值,这样您就可以确定它得到了您想要的。
  • 您在哪种情况下尝试访问这些值?如果您使用TemplateField 而不是BoundField,则使用FindControl 方法查找在ItemTemplate 中声明的相应控件并尝试访问Text 属性。

标签: c# asp.net sql-server gridview


【解决方案1】:

我会尝试打印出整个表以查看返回了哪些值。行循环内的单元格循环应该让您更清楚地看到正在发生的事情。记得在打印值前面加上空格,\n 在行尾。

祝你好运!

【讨论】:

    【解决方案2】:

    返回错误值的字段被格式化为货币。事实证明,格式已经应用在标记和后面的代码中;这似乎导致了问题。从标记中删除格式后,问题就解决了..

    【讨论】:

      猜你喜欢
      • 2023-03-18
      • 2015-06-19
      • 2023-03-08
      • 1970-01-01
      • 2019-02-03
      • 1970-01-01
      • 2014-01-16
      • 2016-04-13
      • 2021-09-05
      相关资源
      最近更新 更多