无法从GridView获取行值

时间:2014-11-21 11:40:37

标签: c# asp.net gridview

这是我正在使用的循环。我得到了正确的行数和列数,所以我假设我正确绑定了。

Text始终为空。为什么呢?

for (int i = 0; i < GridView1.Rows.Count; i++)
{
    for (int k = 0; k < GridView1.Columns.Count; k++)
    {
        string cellText = GridView1.Rows[i].Cells[k].Text;
    }
}

我找到了一些pointers,但他们没有帮助。

修改1

这是我的GridView,有一条记录

enter image description here

唯一的空值在责任下。

从Ehsan Sajjad的回答中,我知道我的代码总是会得到最后一个值,即&#34; Classics&#34;。

这是对的吗?

如果是,那么为什么我的所有列都变空Text

修改2

我自己解决了这个问题。感谢那些在这个主题中提供帮助的人。请参阅下面的答案。

4 个答案:

答案 0 :(得分:1)

最简单的方法是使用:

foreach(GridViewRow row in GridView1.Rows)
{
for(int i = 0; i < GridView1.Columns.Count, i++)
{

    String cellText = row.Cells[i].Text;
}
}

答案 1 :(得分:1)

试试这个

string cellText = "";

for (int i = 0; i < GridView1.Rows.Count; i++)
{
    for (int k = 0; k < GridView1.Rows[i].Cells.Count; k++)
    {
        cellText += GridView1.Rows[i].Cells[k].Text;
    }
}

答案 2 :(得分:1)

我的gridview正在使用DynamicFields

解决方案只是将所有DynamicFields替换为标准BoundFields和BOOM所有数据都在那里。

下次我不会使用DynamicData框架,这是肯定的。

On this other thread你可以找到原始问题的完整情景。

答案 3 :(得分:-1)

你的回答在于你在问题中提到的链接,你的单元格里面可能有控件,试着在row.Cells [1] .Controls集合的帮助下访问它。 最后在循环中设置一个断点并检查你能进入第二个循环吗?我尝试在SqlDataSource的帮助下加载gridview并试图像你一样访问值,我无法进入第二个循环。 也许这个链接可能对你有帮助。 How to get the value of a cell specifies the GridView ASP.NET