首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CGridView和CButtonColumn的使用(Yii框架)

CGridView和CButtonColumn的使用(Yii框架)
EN

Stack Overflow用户
提问于 2012-11-02 21:28:24
回答 2查看 5.7K关注 0票数 0

我是Yii的初学者,并且尝试理解CGridView小部件。

首先,我理解所有这些守则:

代码语言:javascript
复制
$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$dataProvider,
    'columns'=>array(
        "url",
        "allowRedirect",
        array(
            "name"=>"Kod",
            "value"=>array($model, "returnHTTPCode"),
            "type"=>"html"
            ),
        array(
            "class"=>"CButtonColumn",
            "template"=>"{update} {delete}",
            ),

        ),
));

现在,我想将删除按钮的url更改为http://domain.com/?r=pano/deleteSite在文件中,有一个deleteButtonUrl属性,我正在尝试使用它

代码语言:javascript
复制
$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$dataProvider,
    'columns'=>array(
        "url",
        "allowRedirect",
        array(
            "name"=>"Kod",
            "value"=>array($model, "returnHTTPCode"),
            "type"=>"html"
            ),
        array(
            "class"=>"CButtonColumn",
            "template"=>"{update} {delete}",
            "deleteButtonUrl"=>"deleteSite"            
            ),

        ),
));

但我发现了Use of undefined constant deleteSite - assumed 'deleteSite'错误。

然后我尝试使用buttons属性CButtonColumn。

代码语言:javascript
复制
$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$dataProvider,
    'columns'=>array(
        "url",
        "allowRedirect",
        array(
            "name"=>"Kod",
            "value"=>array($model, "returnHTTPCode"),
            "type"=>"html"
            ),
        array(
            "class"=>"CButtonColumn",
            "template"=>"{update} {delete}",
            "buttons"=>array(
                "delete"=>array(
                            "url"=>"http://localhost/sitelerimacikmi/index.php?r=panos"
                            )
                ),

            ),

        ),
));

也犯了同样的错误。

如何使用CButtonColumn的属性?

注意到,英语不是我的母语,所以如果可能的话,请使用简单的语法。

EN

回答 2

Stack Overflow用户

发布于 2012-11-02 22:55:20

您可以尝试使用:

代码语言:javascript
复制
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'columns'=>array(
    "url",
    "allowRedirect",
    array(
        "name"=>"Kod",
        "value"=>array($model, "returnHTTPCode"),
        "type"=>"html"
        ),
    array(
        "class"=>"CButtonColumn",
        "template"=>"{update} {delete}",
        "deleteButtonUrl" => "Yii::app()->createUrl('pano/deleteSite')" // <- changes here
        ),

    ),
));

此外,您还可以阅读本文:http://www.yiiframework.com/wiki/106/using-cbuttoncolumn-to-customize-buttons-in-cgridview/

票数 1
EN

Stack Overflow用户

发布于 2012-11-02 22:55:49

如果需要指定URL,则必须将其指定为PHP表达式。下面是如何在CButtonColumn类中定义delete URL的默认值,

代码语言:javascript
复制
public $deleteButtonUrl = 'Yii::app()->controller->createUrl(
    "delete",array("id"=>$data->primaryKey)
)';

这个url是使用php eval函数计算的,在这个表达式中,$data是正在呈现的当前模型。

你应该使用:

代码语言:javascript
复制
$this->widget('zii.widgets.grid.CGridView', array(
    ...
    'columns'=>array(
        ...
        array(
            'class'=>'CButtonColumn',
            'deleteButtonUrl' => 'Yii::app()->controller->createUrl(
                "pano/deleteSite", array("id" => $data->primaryKey)
            )',
        ),
    ),
);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13203284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档