2010-01-25 74 views
1

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

+0

也许我们可以提供一个解决方案,如果您告诉我们您需要获取生成列的宽度的原因......是因为您需要/想要将它们设置为特定宽度? – 2010-01-26 21:59:35

回答

3

除非您将列的宽度设置为特定的大小(您不是),否则在至少呈现Page_Render事件之前无法知道生成列的宽度。该控件的html直到那时才存在,直到页面呈现为html并且处理后的css才能知道它的宽度。

0

也许这在控件的生命周期中访问GridView的属性为时尚早。你有没有试过在DataBound事件中访问GridView的列宽?有关更多信息,请参阅ASP.NET Page Life Cycle Overview

DataBound事件:

这一事件标志着 数据绑定操作的在 数据绑定控件的端部。在GridView 控件中,对于所有行和任何子控件,数据绑定已完成 。使用 此事件来格式化数据绑定 内容或启动数据绑定 其他控件取决于当前控件的内容值 。

+0

是的,我试过DataBound。在这种情况下它仍然是0。 – John81 2010-01-27 21:12:09

相关问题