当AutoGenerateColumns为true时,如何获取gridview列的宽度

时间:2010-01-25 16:37:15

标签: asp.net gridview width autogeneratecolumn

我有一个gridview,我需要在gridview是数据绑定后得到列的宽度。我必须有AutoGenerateColumns = true,因为gridview绑定的数据表的列不会被修复。我遇到的问题是当AutoGenerateColumns为true时,不会填充gridview列集合。无论如何,在gridview是数据绑定后,我可以获得每列的宽度吗?我已经尝试过使用RowDataBound并浏览tablecells但每列的宽度为0。

2 个答案:

答案 0 :(得分:3)

除非您将列的宽度设置为特定大小(您不是),否则至少在渲染Page_Render事件之前您不可能知道生成的列的宽度。控件的html在此之前不存在,并且在将页面呈现为html并附加css处理之前,无法知道其宽度。

答案 1 :(得分:0)

在控件的生命周期中,访问GridView的属性可能还为时过早。您是否尝试在DataBound事件中访问GridView的列宽?有关详细信息,请参阅ASP.NET Page Life Cycle Overview

DataBound事件:

  

此事件标志着结束   数据绑定操作   数据绑定控制。在GridView中   控制,数据绑定完成   所有行和任何子控件。使用   此事件以格式化数据绑定   内容或启动数据绑定   其他依赖于值的控件   来自当前控件的内容。