c# - 具有固定标题和全页宽度网格的 Gridview

标签 c# html css asp.net gridview

我之前问过问题Set header width and column properly during freeze the header in gridview 通过使用这些解决方案,我发现分辨率存在一些问题,因此我在设计本身中添加了所有列。但是当列具有大长度文本时,我仍然面临问题。

我正在尝试使用此 link 中给出的代码来卡住 Gridview 的 header

它可以工作,但问题是将 Gridview 修复为完整页面大小宽度。也就是说 Gridview 应在浏览器中全屏显示。如果列的内容很小,它可以正常工作。但如果列的长度值较大,则数据在单元格内需要大约 2 或 3 行。在这种情况下,网格标题宽度和列宽度设置不相等并且看起来很奇怪。 我尝试将 HeaderStyle-Width 和 ItemStyle-Width 与 % vales 一起使用。我没有更改脚本中的任何内容。但这没有帮助。 因此,我尝试通过为每列指定 HeaderStyle-Width 和 ItemStyle-Width 来解决此问题。 然后就可以正常工作了。但在这里我面临另一个问题。这是由于固定宽度网格不会全屏显示。对于高分辨率显示网格仅显示屏幕宽度的约 75%。

那么如何解决呢。我希望网格显示全屏,并且列和标题应该正确对齐。

最佳答案

如果您不介意使用一个小 jquery 插件,那么它可能会节省您的时间。我知道我曾经在我的早期元素之一中使用 css 表达式和 javascript 解决方案尝试过互联网上的所有建议,但它总是在一个或其他浏览器中中断,并且标题列宽度和行列宽度可能无法动态对齐数据长度。

链接到 GridViewScroll Demo这使得这项工作非常完美。

这是我在应用程序中使用它的方式,它运行完美。引用我的另一个answer对于类似的问题。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js"></script>
<script type="text/javascript" src="gridviewScroll.min.js"></script>
<link href="GridviewScroll.css" rel="stylesheet" />

function pageLoad(sender, args) {
   gridviewScroll ();
}

function gridviewScroll() {
   gridView1 = $('#GridView1').gridviewScroll({
        width: 915,
        height: 449,
        railcolor: "#F0F0F0",
        barcolor: "#CDCDCD",
        barhovercolor: "#606060",
        bgcolor: "#F0F0F0",
        freezesize: 5,
        arrowsize: 30,
        varrowtopimg: "../../../images/arrowvt.png",
        varrowbottomimg: "../../../images/arrowvb.png",
        harrowleftimg: "../../../images/arrowhl.png",
        harrowrightimg: "../../../images/arrowhr.png",
        headerrowcount: 1,
        onScrollVertical: function (delta) {
         // store the scroll offset outside of this function in a hidden field and restore if you want to maintain vertical scroll position
        },
        onScrollHorizontal: function (delta) {
          //store the scroll offset outside of this function in a hidden field and restore if you want to maintain horizontal scroll position
        }
    });
}

屏幕打印显示卡住的网格标题在我的应用程序中的外观。如果您有较长的行数据,您可以事件卡住网格的某些列。从图像中,灰色的列是我的应用程序中被卡住的列。

enter image description here

关于c# - 具有固定标题和全页宽度网格的 Gridview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25487694/

相关文章:

c# - 在 Windows Azure 上运行 Fleck(或任何)Websocket 服务器

c# - SmtpClient.SendAsync - 如何在触发回调之前停止应用程序退出?

c# - P4Api client.GetFileMappings 不返回分支文件的前导减号/破折号

javascript - 当焦点位于文本框中时,Jquery on click 不起作用

javascript - AngularJS:如何在拖动 map 后获取标记的位置

css - Internet Explorer 中的滚动条 css 样式

C# - 两个大字符串数组的模糊比较

javascript - JS/HTML5/Meteor 如何将输入更改为标签?

HTML - <page> 标签在做什么?

html - 带有 Bootstrap 的响应图像