Asp.net 如何在多个GridView中对齐列
如何在一个页面上获得多个GridView以共享相同的列宽 我有四个GridView,每个GridView(基本上)有相同的列。它们具有唯一的头并表示来自不同查询的数据。我希望通过允许根据数据动态调整列的大小来最大限度地提高可读性,但我不希望每个GridView都独立地这样做。将相同的命名列一个接一个地放在不同宽度的列上看起来非常松散。而是希望所有四个GridView为列1选择相同的大小,为列2选择相同的大小,等等 在windows应用程序中,我相信有一个名为SharedSizeGroup的属性,它允许您设置来自不同控件的列,以便在决定最佳大小时进行协作 在ASP.NET中完全可以实现这一点吗?因为动态列宽取决于浏览器,所以要求太高了吗Asp.net 如何在多个GridView中对齐列,asp.net,gridview,browser,web-controls,Asp.net,Gridview,Browser,Web Controls,如何在一个页面上获得多个GridView以共享相同的列宽 我有四个GridView,每个GridView(基本上)有相同的列。它们具有唯一的头并表示来自不同查询的数据。我希望通过允许根据数据动态调整列的大小来最大限度地提高可读性,但我不希望每个GridView都独立地这样做。将相同的命名列一个接一个地放在不同宽度的列上看起来非常松散。而是希望所有四个GridView为列1选择相同的大小,为列2选择相同的大小,等等 在windows应用程序中,我相信有一个名为SharedSizeGroup的属性,
谢谢我很确定你只能自己设置宽度。我不认为他们是一个选项,让你做什么,你正在寻找 如果使用asp:TemplateFields、asp:BoundFields等来形成字段,则可以使用ItemStyle Width=“100px”来设置每列的宽度 因为动态列宽取决于浏览器,所以要求太高了吗 差不多。除非您明确设置列宽,否则浏览器将选择-因此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);
});
谢谢你的信息。我不认为我会玩重新调整列宽自己。我可能会继续修修补补,直到重新创建了浏览器中的整个动态列大小调整逻辑,我才会对此感到满意。:)因为我的项目不是太大,所以我刚刚将四个项目改为一个gridView。在绑定之前,我将查询数据聚合到一个dataTable服务器端,然后使用一些javascript将表与摘要行、重复的标题等组合起来。分离不同的数据块。@Owen-FWIW,我的代码片段(未测试)只会将宽度设置为浏览器设置的最大宽度。这基本上就是把所有的东西塞进一张桌子所做的。是的,这就是为什么我可以看到自己在无休止地修补。这种行为意味着,如果表A认为第3列需要很大的空间,表B认为第1列需要很大的空间,表C认为第7列需要很大的空间,那么我最终会在所有表中设置第1、3和7列。要么变宽并需要滚动条(如果我使用像素),要么如果我标准化为百分比,它会比平常更压扁不太大的列。