2013-04-08 64 views
0

正如標題所示,我希望在調用DataBind()之後獲得每個列的寬度。如何從GridView獲取列寬?

調用gv.Columns [i] .ItemStyle.Width.Value返回0.這可能是因爲.aspx文件中GridView的定義沒有定義寬度。我不想定義它。

回答

0

想要獲取列在客戶端上呈現時的寬度?受限於內容的寬度,頁面中其他位置的CSS設置以及瀏覽器窗口大小等內容?

爲此,您必須使用一些客戶端代碼,並收集寬度並將其存儲在隱藏字段中,等待回發或通過Ajax將其發回。

無論哪種方式,這將是一個兩步驟的過程:你將無法DataBind,然後檢查在相同的頁面加載寬度。您必須等待頁面在客戶端上呈現才能確定真正的寬度。

在任何情況下,除非你正式設置ItemStyle.Width,你會不會有這方面的非零值,無論是右後DataBind或回傳後,因爲在客戶端 ISN呈現列的寬度這些東西會在回發時自動更新。上面我的建議都涉及確定客戶端的價值並以其他方式返回。