0

是否可以更新 CListView 中的各个字段?我正在寻找一种解决方案,让用户在所有表记录的这个视图中编辑他们的记录。

一个例子是用户有一个相关约会的列表。他们可能希望快速将约会标记为优先级低/高,而无需转到更新视图本身。

除了 CListView 之外,还有其他小部件可用于此类功能吗?

抱歉,我在研究这个时遇到了一些死胡同,我可能错过了一些非常明显的东西。

4

3 回答 3

0

让我们说下面是您的列表视图

<?php $this->widget('zii.widgets.CListView', array(
    'dataProvider'=>$dataProvider,
    'itemView'=>'_view',
    'id'=>'itemList',

)); ?>

和你的部分(_view.php)

<?php echo CHtml::ajaxLink('Mark Status',array('appointment/update','id'=>$data->id),
                array('type'=>'POST','success'=>'function(){loadListView()}'),
                array('confirm'=>'Are you sure you want to mark complete this appointment?',
                    'id'=>'mark-'.$data->id));  ?>

重新加载所有网格(不是单个字段)的功能,因为更新的记录可能会影响其他数据。

<script type="text/javascript">
        function loadListView(){
            $.fn.yiiListView.update('itemList');
        }
    </script>

有一些参考可以作为你的例子

http://help.discretelogix.com/php/yii/enable-in-place-editing-in-yii-grid.htm

于 2013-08-07T12:47:51.940 回答
0

没有奇迹般的解决方案,这取决于您要完成的任务;

如果你想有按钮来改变任务优先级,你可以使用 ajax 链接(http://www.yiiframework.com/doc/api/1.1/CHtml#ajaxLink-detail)。

如果你想内联编辑文本,你可以结合使用 Jeditable ( http://www.appelsiini.net/projects/jeditable ) 和一些 ajax 来编辑文本,然后更新项目的内容。

顺便提一下,您可以使用renderPartial 方法将视图部分呈现为字符串(即 PHP 变量) 。因此,您可以只呈现更新的 CListView 项并将其返回给 ajax 回调以更新内容。

快乐编码!

于 2013-08-07T12:35:53.333 回答
0

你可以实施,

TbEditableColumn (YiiBooster) 或 EditableColumn (x-editable for Yii) 并即时编辑您的日期。在相关控制器中创建新的一些更新操作后,您只需要实现上述小部件之一,从 POST 请求接收数据并更新数据。

非常有用的相关 Yii wiki 链接

于 2014-06-04T16:24:23.693 回答