如何在多个GridView中对齐列

时间:2010-03-10 20:57:16

标签: asp.net gridview browser web-controls

如何在一个页面上获得多个GridView以共享相同的列宽?

我有四个GridView,每个都有(基本上)相同的列。它们具有唯一标头并表示来自不同查询的数据。我想通过允许根据数据动态调整列来​​最大化可读性,但我不希望每个GridView独立完成。具有相同名称的列一个在另一个上面,具有不同的宽度看起来非常草率。而是希望所有四个GridViews为第1列选择相同的大小,为第2列选择相同的大小等等。

在Windows应用程序中,我相信这个名为SharedSizeGroup的属性允许您在决定最佳大小时设置来自不同控件的列以进行协作。

这可以在ASP.NET中实现吗?是否要求太多,因为动态列宽取决于浏览器?

由于

2 个答案:

答案 0 :(得分:2)

我很确定你只能为自己设定宽度。我不认为他们是一个可以让你做你想要的事情的选择。

如果您使用 asp:TemplateFields asp:BoundFields 等来形成您的字段,您可以使用 ItemStyle-Width =“ 100px“设置每列的宽度

答案 1 :(得分:0)

  

问题太多了,因为动态列宽取决于浏览器吗?

差不多。除非您明确设置列宽,否则浏览器将选择 - 因此ASP.NET不了解它。你可以使用一些jQuery来补偿:

$(function() {
   var maxWidth = 0;
   $('TBODY TR:first TD.col1').each(function() {
       maxWidth = $(this).width > maxWidth ? $(this).width : maxWidth;
   });

   $('TBODY TR:first TD.col1').width(maxWidth);
});