【问题标题】:jQGrid Pager_left width too small with few columnsjQGrid Pager_left 宽度太小,列数很少
【发布时间】: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 是我目前最好的选择。
  • jqGrid 代码有两个地方进行某种“特征检测”。请参阅here(尤其是the line)和here)。结果width 将在不需要的情况下设置。我发现删除左侧寻呼机的width 样式没有任何副作用。所以我觉得它已经足够好了。
  • @Oleg,谢谢。这很有帮助。我已经提交了一个错误,现在将使用我的 hack。
  • @Oleg,您会将您的答案作为答案发布,以便我将其标记为已接受吗?

标签: jquery asp.net-mvc-3 jqgrid


【解决方案1】:

jqGrid 代码有两个地方进行某种“特征检测”。请参阅here(尤其是the line‌​)和here)。结果width会在不需要的情况下设置。

我发现删除左侧寻呼机的width 样式没有任何副作用。所以我觉得它足够好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-18
    • 2020-04-19
    • 1970-01-01
    • 1970-01-01
    • 2013-11-28
    • 2012-03-24
    相关资源
    最近更新 更多