我有一个gridview,我需要在gridview是数据绑定后得到列的宽度。我必须有AutoGenerateColumns = true,因为gridview绑定的数据表的列不会被修复。我遇到的问题是当AutoGenerateColumns为true时,不会填充gridview列集合。无论如何,在gridview是数据绑定后,我可以获得每列的宽度吗?我已经尝试过使用RowDataBound并浏览tablecells但每列的宽度为0。
答案 0 :(得分:3)
除非您将列的宽度设置为特定大小(您不是),否则至少在渲染Page_Render事件之前您不可能知道生成的列的宽度。控件的html在此之前不存在,并且在将页面呈现为html并附加css处理之前,无法知道其宽度。
答案 1 :(得分:0)
在控件的生命周期中,访问GridView的属性可能还为时过早。您是否尝试在DataBound事件中访问GridView的列宽?有关详细信息,请参阅ASP.NET Page Life Cycle Overview。
DataBound事件:
此事件标志着结束 数据绑定操作 数据绑定控制。在GridView中 控制,数据绑定完成 所有行和任何子控件。使用 此事件以格式化数据绑定 内容或启动数据绑定 其他依赖于值的控件 来自当前控件的内容。