Yii - YiiBooster GridView小部件在给出id时会弄乱部分页面

时间:2014-09-09 18:19:09

标签: javascript php gridview yii yii-booster

我有一个父子子视图布局的视图。在父视图中,我有一个来自YiiBooster扩展的GridView,它列出了db中的所有人员:

$this->widget('bootstrap.widgets.TbGridView', array(
        'dataProvider' => $model->search(),
        'filter' => $model,
        'ajaxUpdate' => true,
        'selectionChanged' => "updateChild", // new code
        'columns' => array(
            'firstName', 'lastName'
        )
    ));

它没有id,默认情况下分配一个,即yw0。

在selectionChanged上调用的updateChild js方法获取一个人的所有信息,并使用$('#childView')。html(data)使用信息更新子视图。如果为父GridView提供了一个显式ID,如下所示:

$this->widget('bootstrap.widgets.TbGridView', array(
        'id' => 'parentGrid' // explicit id
        'dataProvider' => $model->search(),
        'filter' => $model,
        'ajaxUpdate' => true,
        'selectionChanged' => "updateChild", // new code
        'columns' => array(
            'firstName', 'lastName'
        )
    ));

子视图不会更新相关数据。我查看了源代码,控制器中的函数工作正常,并将所有相关数据传回,这是一个渲染问题,他们拒绝显示。

另外,如果我的子视图中有另一个GridView(例如列出一个人所属的各种不同类别),那么在尝试点击一个人时会出现以下错误: “无法读取属性tableClass of undefined”。

我的子视图是局部视图,因此使用了renderPartial()。我允许它加载更多脚本,因为我的子视图在子视图中的各种元素上有点击事件的js监听器。

有没有人对于发生了什么有任何想法?感谢。

编辑:我现在已经使用明确的ID了,我从另一个问题得到答案。但是“无法读取属性tableClass of undefined”问题仍然存在。似乎当我想通过renderPartial()将GridView放入我的子视图时,它会在父视图中弄乱GridView。

0 个答案:

没有答案