正如标题所暗示的那样,我希望在调用 DataBind() 后获得每列的宽度。
调用 gv.Columns[i].ItemStyle.Width.Value 返回 0。这可能是因为 .aspx 文件中 GridView 的定义没有定义宽度。我不想定义它。
您想在客户端呈现列时获取列的宽度?受制于内容的宽度、页面其他地方的 CSS 设置以及浏览器窗口大小等因素?
为此,您必须使用一些客户端代码,或者收集宽度并将它们存储在隐藏字段中,等待回发,或者通过 Ajax 将它们发送回来。
无论哪种方式,这将是一个两步过程:您将无法DataBind
检查在同一页面加载中的宽度。您必须等待页面在客户端上呈现才能确定真实宽度。
在任何情况下,除非您正式设置 ,否则ItemStyle.Width
无论是在回发之后还是在回发之后,您都不会获得非零值,因为在客户端上呈现DataBind
的列的宽度不会自动更新回发。上面我的建议都涉及在客户端确定价值并以其他方式返回它。