2010-01-25 71 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

相關問題