可能有一种更简单的方法来实现我正在尝试做的事情,我认为我并不完全理解$.extend()
功能,但我在这里寻求建议:
我在我的索引上定义了这个自定义网格对象:
var grid = $('.grid').loadGrid({
inlineEditing:<?php echo $edit ? 'true' : 'false'; ?>,
adding:<?php echo $edit ? 'true' : 'false'; ?>,
deleting:<?php echo $edit ? 'true' : 'false'; ?>,
pagerLocation:"top",
width:1320,
loadComplete: function() {
exp_sql = $(this).data().exp_sql;
}
});
如您所见,一些参数是在 PHP 处理页面时计算出来的。
然后我在页面下面有几个预先定义了一些 var 检查的网格:
<?
$tab = '1';
if(!@in_array($tab,$SECTIONS,true) AND $LEVEL != 1){ $edit = 0;}
?>
<table class="grid cat" action="div-m.php" title="Master catalogue info">
<th col="Catalogue" editable="<?php echo $edit ? 'select' : ''; ?>">Catalogue No</th>
<th col="ISRC" editable="<?php echo $edit ? 'text' : ''; ?>">ISRC</th>
...
</table>
然后:
...
<table class="grid isrc" action="div-d.php" title="Digital / detailed info">
...
</table>
每个单独的表都有其唯一性date_ranges
(来自 mysql 表),应该在每个表的主网格中定义。但是因为我在同一页面上有多个网格,所以我不能用 PHP 做到这一点。
所以问题是 - 我可以直接在表格之前使用更多选项扩展第一个定义的对象grid
,即:
<?php
$tab = '1';
$grid = 'cat';
if(!@in_array($tab,$SECTIONS,true) AND $LEVEL != 1){ $edit = 0;}
?>
<script type="text/javascript">
var date = {dateRange:"street_date"};
$.extend.apply(grid, date);
// $.extend(grid, dateRange:"street_date");
</script>
<table class="grid cat" action="div-m.php" title="Master catalogue info">
以上显然不起作用......因为我认为loadGrid()
应该再次调用方法......