所以我有一张表,在每个单元格内,是一个gridview。基本上它是表格中的表格。现在,每个网格视图中的列具有任意宽度,具体取决于每个单元格中每个文本的长度。我想让它们完全相同,所以看起来更好。
在循环中,我创建每个gridview,绑定到一个单元格,绑定到一个行,然后附加到外部表。在将gridview绑定到数据视图以使第一列宽度一致后,我尝试添加此语句:
gvTemp.Columns[0].ItemStyle.Width = Unit.Pixel(400);
但是我得到一个错误,即0表示索引太大,即使gridview不为空。
我使用了错误的方法吗?我将代码放在错误的位置吗?
答案 0 :(得分:0)
解决这个问题的一种方法是使用CSS中的百分比和javascript中的一些简单数学。使用javascript获取表中的列数,除以100并将该结果作为宽度值(以百分比形式)应用于每列。这样,无论您拥有多少列或多少列,它都会始终均匀地分割它们。
当你有很多列并且它们变得太窄而无法合理使用时会出现问题,在这种情况下,你最好为每列设置一个像素宽度。
答案 1 :(得分:0)
看起来Columns属性用于显式声明的列,您可能从数据源中隐含了这些列。
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.columns(v=vs.110).aspx
检查Rows属性。您可能必须在第一行中设置单元格的宽度:
Rows[0].Cells[0].Width = Unit.Pixel(400)