首先可以看到,自动调整大小后列的宽度不是最佳的。问题的存在是因为在计算最佳大小期间使用的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