我正在尝试在我的Marionette应用程序中渲染jqGrid,一切顺利,直到我找不到渲染寻呼机的方式。 我使用的是持有模板的Handlebars,这是代码:
hb template:
<script id='llantas_grid_tmpl' type='text/x-handlebars-template'>
<table id='llantas_catalog_list'></table>
<div id="llantas_catalog_pager">pager</div>
</script>
layout...
ui: {
table: '#llantas_catalog_list',
pager: '#llantas_catalog_pager'
},
onRender: function(){
var table = this.ui.table,
pager = this.ui.pager;
table
.jqGrid({
url: '/llantas',
datatype: "json",
colNames:['Id','Orden De Compra', 'Marca', 'Medida', 'Modelo'],
colModel:[
{name:'id',index:'id', width:55},
{name:'ordencompra',index:'ordencompra', width:90},
{name:'marca',index:'marca', width:90},
{name:'medida',index:'medida', width:90},
{name:'modelo',index:'modelo', width:90}
],
rowNum:10,
rowList:[10,20,30],
pager: '#llantas_catalog_pager',
width:1060,
height:375,
sortname: 'id',
viewrecords: true,
sortorder: "desc",
caption:"<h3>Catalogo llantas<h3>"
});
table
.jqGrid('navGrid','#llantas_catalog_pager',{edit:false,add:false,del:false});
}
有没有办法将寻呼机占位符设置为jqGrid作为对象? 像这样:
table
.jqGrid('navGrid',pager,{edit:false,add:false,del:false});
编辑:如果你知道后弹MARIONETTE和JQGRID,请回答。
答案 0 :(得分:2)
总之,没有。
jqGrid does a check以确保它是一个字符串,
if(!$t.grid || typeof elem !== 'string') {return;}
您需要修改jqGrid源。
答案 1 :(得分:0)
我找到了让它发挥作用的方法:
一旦子视图(我试图用jqGrid渲染的那个)已经渲染并显示在主视图的区域中,我只搜索模板表选择器并在jqGrid pager选项中传递寻呼机ID。 / p>
主要布局......
onRender: function(){
// llantasGridView is the view holding only the template without the jqGrid (I erased everything)
var llantasGridView = new LlantasGrid.View();
// table_container is the region that will hold the llantasGridView template
this.table_container.show( llantasGridView );
// once is rendered I search for the table
var table = llantasGridView.$el.find('#llantas_catalog_list');
// here I pass the jqGrid
table
.jqGrid({
url: G.API + '/llantas',
datatype: "json",
colNames:['Id','PO'...
pager: '#llantas_catalog_pager', // pager for grid is now being displayed
...