jqGrid edit modal的width参数打断其他参数

The width parameter of the jqGrid edit modal breaks the other parameters

当我在 jqGrid 中向编辑模式添加宽度时,它后面的参数(即 add:false、closeAfterEdit: true 等)停止工作。我在不同的地方试过了,还是不行。

jQuery("#prodgrid").jqGrid('navGrid', '#pager', {width: 1000},{edit: true, add: false, del: false, search: false}, {closeAfterEdit: true},  {closeAfterAdd: true});

仅供参考:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.8.0/js/i18n/grid.locale-en.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.8.0/js/jquery.jqgrid.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.3/jquery-ui.min.js"></script>

您使用了 navGrid 的错误选项。如果你检查 the documentation 你会发现你使用的参数的位置是错误的。正确的是

$("#prodgrid").jqGrid('navGrid', '#pager',
    {add: false, del: false, search: false},
    {closeAfterEdit: true, width: 1000},
    {closeAfterAdd: true, width: 1000});

(您可以跳过 edit: true,因为它已经是默认值)。

我看到您使用免费的 jqGrid。它使 jqGrid 选项的指定更容易。首先你可以跳过'#pager'。在这种情况下,jqGrid 将只使用您在创建网格期间指定的寻呼机。您可以在网格的选项中指定秒数 page: true 而不是使用 pager: '#pager'。在这种情况下,您不需要创建空的 <div id="pager"></div>。通过使用 page: true free jqGrid 将自动创建相应的 div。此外,'navGrid' 的选项 div 独立部分:navGrid 选项 {edit: true, add: false, del: false, search: false} 和表单编辑选项:{closeAfterEdit: true, width: 1000}{closeAfterAdd: true, width: 1000} .免费的 jqGrid 允许在创建网格期间直接指定选项,然后使用 navGrid:

调用的简化形式
$("#prodgrid").jqGrid({
    // here there are all other standard option which you already use
    pager: true,
    navOptions: {add: false, del: false, search: false},
    formEditing: {closeAfterEdit: true, closeAfterAdd: true, width: 1000}
}).jqGrid("navGrid");

您可以阅读更多关于 jqGrid 选项编码风格的信息 here。我个人更喜欢命名参数作为定位参数,因为每个人都可以更好地阅读代码。