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加载运算后的数据会默认为是空值?