我有一个用gridview绑定的数据表,我想改变列宽。 这就是我使用的代码:
DataTable aTable = new DataTable("Words");
aTable.Columns.Add("word");
GridView1.DataSource = aTable;
DataRow a = aTable.NewRow();
a[0] = "test";
aTable.Rows.Add(a);
GridView1.DataBind();
GridView1.Columns[0].ItemStyle.Width = Unit.Pixel(200);
当执行到达最后一行时,它会产生一个错误,说明找不到索引为0的列,而是它在数据表中,并显示在网页中。
为什么gridview没有看到该列,是否有办法解决这个问题?
答案 0 :(得分:0)
我会尝试将其放在网格视图的预呈现事件中。您可能正试图在错误的位置执行此操作。
编辑尝试在声明之前添加此内容:
if(GridView1.Columns.Count > 0)
//do stuff here
答案 1 :(得分:0)
除非您在gridview中明确定义<columns>
,否则列数始终为0。
你正在自动生成。因此,将<columns>
与<asp:BoundField DataField="word" />
一起使用即可。