Javascript 创建jqgrid后如何应用列模板
Free jqgrid不允许在创建列模板后应用该模板。 我试过了 如果在列中单击,则不会显示警报框。 search:false正确删除搜索字段,以便执行setColProp 如何在创建jqgrid之后但在显示之前应用newOrderPriceTemplate。 若在创建时在colModel中指定了模板,则该模板有效Javascript 创建jqgrid后如何应用列模板,javascript,jquery,asp.net-mvc-4,jqgrid,free-jqgrid,Javascript,Jquery,Asp.net Mvc 4,Jqgrid,Free Jqgrid,Free jqgrid不允许在创建列模板后应用该模板。 我试过了 如果在列中单击,则不会显示警报框。 search:false正确删除搜索字段,以便执行setColProp 如何在创建jqgrid之后但在显示之前应用newOrderPriceTemplate。 若在创建时在colModel中指定了模板,则该模板有效 使用了最新的免费jqgrid、jquery、bootstrap3、aps.net mvc4、.net 4.6。我认为对模板的工作原理存在误解。模板只是将在$中使用的设置列表。扩展以将
使用了最新的免费jqgrid、jquery、bootstrap3、aps.net mvc4、.net 4.6。我认为对模板的工作原理存在误解。模板只是将在
$中使用的设置列表。扩展以将colModel
中的某些当前属性与模板属性的另一个对象组合
我建议阅读免费jqGrid的代码。在简化形式中,代码如下所示
for (iCol = 0; iCol < p.colModel.length; iCol++) {
p.colModel[iCol] = $.extend(true, {},
p.cmTemplate,
p.colModel[iCol].template || {},
p.colModel[iCol]);
}
在p.colModel[p.iColByName.Hind]
中的当前设置之后放置新属性非常重要,以便能够覆盖这些设置。谢谢。更改setColProp是否合理,以便在设置了模板属性时自动应用该属性?@Andrus:不客气!首先,我想解释一下为什么您当前的代码不起作用。如果需要,可以使用setColProp
,但是setColProp
(请参阅)的代码主要由一行$组成。extend(true,p.colModel[p.iColByName[colname]],obj)代码>并且可以直接使用它。此外,您希望应用两组属性:neworderpricemplate
和{search:false}
。因此,在我看来,使用一个带有多个参数的$.extend
,似乎更容易理解。
for (iCol = 0; iCol < p.colModel.length; iCol++) {
p.colModel[iCol] = $.extend(true, {},
p.cmTemplate,
p.colModel[iCol].template || {},
p.colModel[iCol]);
}
var p = $grid.jqGrid("getGridParam");
p.colModel[p.iColByName.Hind] = $.extend(true, {},
p.colModel[p.iColByName.Hind], // old values
newOrderPriceTemplate, // the applied template
{ search: false } // one more setting to apply
);