jqgrid创建后如何应用column template
How to apply column template after jqgrid is created
免费的jqgrid创建后不能应用列模板。
我试过了
var newOrderPriceTemplate = {
align: "center",
formatter: "showlink",
formatoptions: {
onClick: function() { alert('clicked'); }
}
};
$(function () {
... code to create jqgrid into $grid
$grid.jqGrid('setColProp', 'Hind', {
template: newOrderPriceTemplate,
search: false
});
});
如果在列中单击,则不会出现警告框。
search: false 正确删除搜索字段,以便执行 setColProp。
如何在创建 jqgrid 之后但在显示之前应用 newOrderPriceTemplate。
如果在创建时在 colModel 中指定了模板,它就可以工作。
最新的免费 jqgrid,jquery,bootstrap3,aps.net 使用 mvc4,.net 4.6。
我认为对模板的工作方式存在误解。模板只不过是将在 $.extend
中用于将 colModel
中的一些当前属性与 template 属性的另一个对象组合的设置列表。
我建议阅读免费 jqGrid 的代码 the code fragment。简化形式的代码看起来像
for (iCol = 0; iCol < p.colModel.length; iCol++) {
p.colModel[iCol] = $.extend(true, {},
p.cmTemplate,
p.colModel[iCol].template || {},
p.colModel[iCol]);
}
换句话说,jqGrid 将列的 cmTemplate
、template
属性 的值与 colModel
的 属性 相结合。 jqGrid 在创建网格的开始 时完成。
因此,如果您有一些模板(例如newOrderPriceTemplate
),您需要在创建网格后应用,那么您只需要使用$.extend
手动扩展(并覆盖)现有属性:
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
);
重要的是将新属性 放在 来自 p.colModel[p.iColByName.Hind]
的当前设置之后以便能够在那里覆盖。
免费的jqgrid创建后不能应用列模板。 我试过了
var newOrderPriceTemplate = {
align: "center",
formatter: "showlink",
formatoptions: {
onClick: function() { alert('clicked'); }
}
};
$(function () {
... code to create jqgrid into $grid
$grid.jqGrid('setColProp', 'Hind', {
template: newOrderPriceTemplate,
search: false
});
});
如果在列中单击,则不会出现警告框。 search: false 正确删除搜索字段,以便执行 setColProp。
如何在创建 jqgrid 之后但在显示之前应用 newOrderPriceTemplate。 如果在创建时在 colModel 中指定了模板,它就可以工作。
最新的免费 jqgrid,jquery,bootstrap3,aps.net 使用 mvc4,.net 4.6。
我认为对模板的工作方式存在误解。模板只不过是将在 $.extend
中用于将 colModel
中的一些当前属性与 template 属性的另一个对象组合的设置列表。
我建议阅读免费 jqGrid 的代码 the code fragment。简化形式的代码看起来像
for (iCol = 0; iCol < p.colModel.length; iCol++) {
p.colModel[iCol] = $.extend(true, {},
p.cmTemplate,
p.colModel[iCol].template || {},
p.colModel[iCol]);
}
换句话说,jqGrid 将列的 cmTemplate
、template
属性 的值与 colModel
的 属性 相结合。 jqGrid 在创建网格的开始 时完成。
因此,如果您有一些模板(例如newOrderPriceTemplate
),您需要在创建网格后应用,那么您只需要使用$.extend
手动扩展(并覆盖)现有属性:
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
);
重要的是将新属性 放在 来自 p.colModel[p.iColByName.Hind]
的当前设置之后以便能够在那里覆盖。