您的位置:首页 > 编程语言 > PHP开发

yii_wiki_204_using-cjuidialog-to-edit-rows-in-a-cgridview(通过CJuiDialog在CGridView中修改行数据)

2013-09-11 20:14 459 查看
/***
Using CJuiDialog to edit rows in a CGridView
 http://www.yiiframework.com/wiki/204/using-cjuidialog-to-edit-rows-in-a-cgridview 
translated by php攻城师
 http://blog.csdn.net/phpgcs 
Scenario
Solution
Column hyperlink
Javascript function

**/

/***
背景		Scenario
***/

我这里有一个 一系列的 clients/events 所属的 CGridView , 对每一行 (eventClient), 我想要实现快速的编辑 eventClient对话框。

我的方法基于 这篇wiki http://www.yiiframework.com/wiki/145/cjuidialog-for-create-new-model/ 
/***

解决方法  Solution

***/

首先基于 wiki 145 做了所有工作后, 再来 修改我们 的CGridView:

Column hyperlink

对每一列 , 在js 函数中设置 _updateComment_url 属性 为需要的 url。

array(
'name'=>'comment',
'header'=>'Comments',
'type'=>'raw',
'value'=>'CHtml::link(
($data["comment"]?$data["comment"]:"(comment)"),
"",
array(
\'style\'=>\'cursor: pointer; text-decoration: underline;\',
\'onclick\'=>\'{
updateComment._updateComment_url="\'.
Yii::app()->createUrl(
"eventClient/updateComment",
array("id"=>$data["id"])
)
.\'";
updateComment();
$("#dialogComment").dialog("open");}\'
)
);',
),

Javascript function

在同一个页面我们将 调用这个 动作的 updateComment() 方法包含进来。

<script type="text/javascript">

function updateComment()
{
// public property
var _updateComment_url;

<?php echo CHtml::ajax(array(
'url'=>'js:updateComment._updateComment_url',
'data'=> "js:$(this).serialize()",
'type'=>'post',
'dataType'=>'json',
'success'=>"function(data)
{
if (data.status == 'failure')
{
$('#dialogComment div.divComment').html(data.div);
// Here is the trick: on submit-> once again this function!
$('#dialogComment div.divComment form').submit(updateComment);
}
else
{
$('#dialogComment div.divComment').html(data.div);
setTimeout(\"$('#dialogComment').dialog('close') \",2000);

// Refresh the grid with the update
$.fn.yiiGridView.update('event-client-grid');
}

} ",
))?>;
return false;

}

</script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐