如何从GridView获取列宽?

时间:2013-04-08 12:19:34

标签: asp.net gridview

正如标题所示,我希望在调用DataBind()之后得到每个列的宽度。

调用gv.Columns [i] .ItemStyle.Width.Value返回0.这可能是因为.aspx文件中GridView的定义没有定义宽度。我不想定义它。

1 个答案:

答案 0 :(得分:0)

您希望在客户端呈现列时获取列的宽度吗?取决于内容的宽度,页面中其他地方的CSS设置以及浏览器窗口大小?

要做到这一点,你必须使用一些客户端代码,并收集宽度并将它们存储在隐藏字段中,等待回发,或者通过Ajax将它们发回。

无论哪种方式,这将是一个两步过程:您将无法DataBind然后检查相同页面加载中的宽度。您必须等待在客户端上呈现页面才能确定真正的宽度。

在任何情况下,除非您正式设置ItemStyle.Width,否则在DataBind之后或回发之后,您将不会有非零值,因为列的宽度< em>在客户端上呈现并不会在回发时自动更新。以上我的建议都涉及确定客户端的价值并以其他方式返回。