Heim > php教程 > php手册 > Hauptteil

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

WBOY
Freigeben: 2016-06-21 08:48:58
Original
798 Leute haben es durchsucht

/*** 
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(  
        &#39;url&#39;=>&#39;js:updateComment._updateComment_url&#39;,  
        &#39;data&#39;=> "js:$(this).serialize()",  
        &#39;type&#39;=>&#39;post&#39;,  
        &#39;dataType&#39;=>&#39;json&#39;,  
        &#39;success&#39;=>"function(data)  
            {  
                if (data.status == &#39;failure&#39;)  
                {  
                    $(&#39;#dialogComment div.divComment&#39;).html(data.div);  
                    // Here is the trick: on submit-> once again this function!  
                    $(&#39;#dialogComment div.divComment form&#39;).submit(updateComment);  
                }  
                else  
                {  
                    $(&#39;#dialogComment div.divComment&#39;).html(data.div);  
                    setTimeout(\"$(&#39;#dialogComment&#39;).dialog(&#39;close&#39;) \",2000);  
   
                    // Refresh the grid with the update  
                    $.fn.yiiGridView.update(&#39;event-client-grid&#39;);  
                }  
   
        } ",  
    ))?>;  
    return false;  
   
}  
   
</script>  
Nach dem Login kopieren



Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!