webform, 将通过SQL计算的结果填充入GridView,在设置列宽时报错,显示列数为0

蜗牛学编程 2021-02-13 12:17:27
遇见一个很奇怪的问题。
我用SQL语句,先对表格的数据进行了一些筛选和统计和计算,例如统计1月到12月的销售量以及合计数量,生成一个dataTable。将数据填充入GridView中(作为其dataSource),显示没有问题,一切正常。
但当我用代码给他们设置列宽,或者想设置显示小数位为2位时,系统一直报错,显示索引值超出范围。例如
gv2.Columns[1].ItemStyle.Width = 200就报错了。

我用以下方式计算总列数,发现居然是0,也就是没有生成数据。
int j = dgv.Columns.Count;
Response.Write(j.ToString());

可是从页面查看源代码,显示有十多列的td。
再回到VS看前台代码,之前引用没有经过筛选计算的数据,会自动显示类似<ItemTemplate>的代码。但这次没有,只有一条<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true"></asp:GridView>。

很不解,难道Gridview加载运算后的数据会默认为是空值?
...全文
232 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
老瓷 2021-02-22
  • 打赏
  • 举报
回复
检测DataSource对应的DataTable,若数据总数为0(即无数据时),置空DataGridView的数据源DataSource

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧