【发布时间】:2014-11-21 21:07:53
【问题描述】:
我有一个模型、视图和控制器,它们会自动将 DataTable 转换为 jQGrid。它按预期工作,除非 DataTable 只有 2 列。数据按预期呈现,但无论屏幕或网格大小如何,Pager_Left 的宽度都被强制为 20px。
我已尝试单步执行代码以查找发生这种情况的位置,但无法看到我正在使其发生的任何地方。
当我单步执行时,是在这行代码之后:
jQuery("#" + "@Model.GridId").jqGrid('navGrid', '#' + '@Model.PagerId', { edit: false, add: false, del: false, refresh: false }, {}, {}, {}, { multipleSearch: true, multipleGroup: false });
Pager_Left 缩小了。如果我注释掉代码,它会按预期显示,但是我没有在寻呼机中获得我的自定义按钮。
具有更宽表格的完全相同的代码会产生预期的结果。我认为jQGrid 有一些“功能”可以在列不多时尝试调整寻呼机,但我不知道如何将其关闭。
我可以这样做:
$('#' + '@Model.PagerId' + '_left').css('width', '');
在有问题的代码之后,它会按预期显示,但我不想在添加样式后通过调用 jQuery 来删除它。
如何关闭“功能”,或使用正确的jQGrid 设置覆盖它?
【问题讨论】:
-
您的主要问题是什么?在网格的初始宽度太小的情况下,我自己也使用删除左侧寻呼机上的
width属性的技巧。您是否搜索产生 CSS 内联样式的代码的位置?这是副作用,而不是“功能”。 jqGrid 中不存在关闭“功能”的特殊选项。如果您想发布错误报告,您应该在trirand forum 上执行此操作。只有 jqGrid 的唯一官方开发者 Tony 才有权修改 jqGrid 的原始代码。 -
我的“主要问题”是如何在没有 hack 的情况下做到这一点。但是,听起来 hack 是我目前最好的选择。
-
@Oleg,谢谢。这很有帮助。我已经提交了一个错误,现在将使用我的 hack。
-
@Oleg,您会将您的答案作为答案发布,以便我将其标记为已接受吗?
标签: jquery asp.net-mvc-3 jqgrid