这是我正在使用的循环。我得到了正确的行数和列数,所以我假设我正确绑定了。
但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,有一条记录
唯一的空值在责任下。
从Ehsan Sajjad的回答中,我知道我的代码总是会得到最后一个值,即&#34; Classics&#34;。
这是对的吗?
如果是,那么为什么我的所有列都变空Text
?
修改2
我自己解决了这个问题。感谢那些在这个主题中提供帮助的人。请参阅下面的答案。
答案 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