是否可以更新CListView中的各个字段?我正在寻找一种解决方案,让用户可以在所有表记录的视图中编辑他们的记录。
一个例子是用户拥有相关约会的列表。他们可能希望快速将约会标记为优先级低/高,而无需转到更新视图本身。
除了CListView之外,是否有针对此类功能的小部件?
对不起,我在研究这个问题时遇到了一些死胡同,我可能已经错过了一些盲目的。
答案 0 :(得分:0)
没有奇迹解决方案,它将取决于你想要完成的任务;
如果您想要按钮来更改任务优先级,可以使用ajax链接(http://www.yiiframework.com/doc/api/1.1/CHtml#ajaxLink-detail)。
如果要内联编辑文本,可以使用Jeditable(http://www.appelsiini.net/projects/jeditable)和一些ajax的组合来编辑文本,然后更新项目的内容。
顺便提一下,只需快速提醒您可以使用renderPartial method将视图部分呈现给字符串(即PHP变量)。因此,您只能渲染更新的CListView项并将其返回到ajax回调以更新内容。
快乐的编码!
答案 1 :(得分: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
答案 2 :(得分:0)
您可以实施,
TbEditableColumn(YiiBooster)或EditableColumn(x-editable for Yii)并在飞行中编辑您的日期。只有在相关控制器中创建新的一些更新操作后才需要实现上述小部件中的一个,从POST请求接收数据并更新数据。