【问题标题】:Manually override column cells left/right padding dont work手动覆盖列单元格左/右填充不起作用
【发布时间】:2015-08-18 14:27:14
【问题描述】:

Demo 位于link remvoed,使用 jqgrid 4.9.2 版

在那里你会发现我在https://dealerapp-dev.bookitout.com/Member/Css/jqgrid-v4.9.2/ui.jqgrid-bio-extended.css做了一个单独的CSS文件的链接引用

在该文件中,我覆盖了在 ui.jqgrid.css 中找到的默认左/右填充,将其从 2px 更改为 15px in ui.jqgrid-bio-extended.css

左边的填充效果很好,但右边的填充被隐藏(或切掉)。

.ui-jqgrid tr.jqgrow > td { padding: 0 15px 0 15px; }

如何让它不被砍掉?

【问题讨论】:

    标签: jqgrid free-jqgrid


    【解决方案1】:

    首先可以看到,自动调整大小后列的宽度不是最佳的。问题的存在是因为在计算最佳大小期间使用的getAutoResizableWidth 方法假设所有行的填充相同。存在宽度为 0px 的第一行具有 jqgfirstrow 类,而不是用于其他数据行的 jqgrow 类。要解决这个问题,你也应该调整.ui-jqgrid tr.jqgfirstrow > td

    .ui-jqgrid tr.jqgfirstrow > td { padding: 0 15px 0 15px; }
    

    我建议您使用以下更常见的 CSS 规则:

    .ui-jqgrid tr.jqgfirstrow > td,
    .ui-jqgrid tr.jqgrow > td,
    .ui-jqgrid tr.jqgroup > td,
    .ui-jqgrid tr.jqfoot > td,
    .ui-jqgrid tr.jqfoot > td,
    .ui-jqgrid tr.footrow > td {
        padding: 0 15px 0 15px;
    }
    

    并考虑额外增加列标题的填充:

    .ui-jqgrid .ui-jqgrid-htable th {
        padding: 0 15px 0 15px;
    }
    .ui-jqgrid .ui-jqgrid-resize-ltr {
        margin: -2px -15px -2px 0;
    }
    

    关于删除单元格中的文本,我认为存在对padding 的误解。文本不必被截断。我不太了解 CSS,但我可以建议您将每个单元格的内容放在具有 CSS 属性 overflow: hidden<div> 内。它将跟随案例中的内容的切割。对应代码

    $("#" + _jqgridSpreadsheetId).bind("jqGridAfterLoadComplete jqGridAfterAddRow", function () {
        $(this).find("tr.jqgrow>td").wrapInner("<div style='overflow: hidden;'></div>");
    });
    

    会降低网格的性能,但会像你想要的那样切掉文本。建议在创建网格之前添加代码。只有在您确定代码在第一次加载网格时才能工作的情况下。

    最后一句话。您应该将jquery-2.0.3.min.map 添加到您拥有jquery-v2.0.3.min.js 的同一文件夹中,因为jquery-v2.0.3.min.js 中存在注释//@ sourceMappingURL=jquery-2.0.3.min.map。同样,jquery-2.0.3.min.map 通常包含"sources":["jquery-2.0.3.js"],因此您也应该包含非压缩文件jquery-2.0.3.js。当前在调试器中加载您的演示会在控制台中产生以下错误消息:

    HTTP404:NICHT GEFUNDEN:Der Server hat keine Übereinstimmungen für den angeforderten URI(统一资源标识符)gefunden。 (XHR): 得到 - https://dealerapp-dev.bookitout.com/Member/Scripts/jquery-v2.0.3/jquery-2.0.3.min.map

    【讨论】:

    • Oleg:jquery 地图文件太糟糕了。我在 4 年前重命名了 jquery 文件,但没有看到错误。现在都修好了。列单元格填充现在很好用。这是很多 CSS 类名。 :-) 不会删掉这一篇上的文字。再次感谢。
    • 3-6 个月后,我将开始通过 ASP.NET GridView 迁移到 jqGrid v4.9.2(用于 Razor/Controller 的垃圾 WebForm)。很好奇,在您开始进行 jqGrid v4.10 增强之前会不会有一段时间,比如 2 年后还是什么?只是想知道,因为我有 2 个使用 jqGrid v4.5 的网页,其中有很多丑陋的 hack(感谢 Tony),并且还不想迁移它们两个。
    猜你喜欢
    • 2013-05-10
    • 2021-11-16
    • 2022-08-22
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    相关资源
    最近更新 更多