程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> yii_wiki_204_using-cjuidialog-to-edit-rows-in-a-cgridview(通過

yii_wiki_204_using-cjuidialog-to-edit-rows-in-a-cgridview(通過

編輯:關於PHP編程

/*** 
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>  

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved