Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 创建jqgrid后如何应用列模板_Javascript_Jquery_Asp.net Mvc 4_Jqgrid_Free Jqgrid - Fatal编程技术网

Javascript 创建jqgrid后如何应用列模板

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。我认为对模板的工作原理存在误解。模板只是将在$中使用的设置列表。扩展以将

Free jqgrid不允许在创建列模板后应用该模板。 我试过了

如果在列中单击,则不会显示警报框。 search:false正确删除搜索字段,以便执行setColProp

如何在创建jqgrid之后但在显示之前应用newOrderPriceTemplate。 若在创建时在colModel中指定了模板,则该模板有效


使用了最新的免费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
);