听起来很简单吧?我搜索了高低,我无法找到如何做到这一点.我有一个CGridView:
$dataProvider = new CArrayDataProvider ($auctions);
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'columns'=>array(
'id::ID',
'product.title::Title',
'state::Status',
),
));
Run Code Online (Sandbox Code Playgroud)
我想添加第四列,只包含一个简单的按钮,按下时将执行javascript.我试过了:
array(
'class' => 'CButtonColumn',
),
Run Code Online (Sandbox Code Playgroud)
这只是给我一个错误:
Undefined property: stdClass::$primaryKey
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我有一个脚本写如下......
$('#sessions-grid .refreshdata').live('click', function(e) {
console.log('came in sessions-grid .refreshdata');
});
Run Code Online (Sandbox Code Playgroud)
我在firbug中的问题是,它显示控制台文本如下,每次我clieck按钮它不再出现而不是计数在那里,它增加..
谁能告诉我这意味着什么?我想因为这个我在尝试在yii cgridview中做一些工作时遇到了问题.
当我按一次时,我认为天气,它进入并保持循环,而不是完成点击和停止,当我再次点击打印相同的增量时.

我正在使用Yii框架.
我使用以下命令在我的一个cgridview过滤器字段中设置了一个值:
这是我的jQuery为searchfield分配一个值:
$('#gridviewid').find('input[type=text],textarea,select').filter(':visible:first').val('".$_GET['value']."');
Run Code Online (Sandbox Code Playgroud)
在这里我的PHP用于调用cgridview:
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'bills-grid',
'dataProvider'=>$dataProvider,
'filter'=>$model,
'cssFile'=>Yii::app()->baseUrl . '/css/gridview.css',
'pager'=>array(
'class'=>'AjaxList',
'maxButtonCount'=>25,
'header'=>''
),
'columns' => $dialog->columns(),
'template'=>"<div class=\"tools\">".$dialog->link()." ".CHtml::link($xcel.' Export to excel', array('ExcelAll'))."</div><br />{items}{summary}<div class=\"pager-fix\">{pager}</div>",));
Run Code Online (Sandbox Code Playgroud)
该值显示在搜索字段中,我的cgridview正常工作,没有任何问题,但我无法触发cgridview刷新或筛选.有没有人知道在页面加载后使用预定义值触发cgridview的过滤器?
非常感谢任何帮助,如果您需要其他信息,请告诉我.
谢谢.
默认情况下,删除按钮会将自己分配给此功能:
jQuery('#main-orders-details-grid a.delete').live('click',function() {
if(!confirm('Are you sure you want to delete this item?')) return false;
var th=this;
var afterDelete=function(){};
$.fn.yiiGridView.update('main-orders-details-grid', {
type:'POST',
url:$(this).attr('href'),
success:function(data) {
$.fn.yiiGridView.update('main-orders-details-grid');
afterDelete(th,true,data);
},
error:function(XHR) {
return afterDelete(th,false,XHR);
}
});
return false;
});
Run Code Online (Sandbox Code Playgroud)
有没有办法覆盖此功能并添加用户定义的功能?
我遇到了一些嵌套网格的麻烦 - 当我从子网中删除一行时,它会更新主网格.
我已将yii CGridview的一列作为超链接.但是在点击它时,它会在同一个标签中打开链接地址.如何在新标签中打开链接地址?
array(
'header'=>'Name',
'name' => 'name',
'value' => 'CHtml::link($data->name, $data->site_url)',
'type' => 'raw',
),
Run Code Online (Sandbox Code Playgroud) 我试图在CGridView中设置pager的pageSize属性但是徒劳无功.顺便说一下目前共有2个项目,我想只显示1对1页面.谢谢.
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'user-grid',
'pager' => array(
'pageSize' => 1,
),
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
'id',
'username',
'email',
'pass',
'type',
'date_entered',
array(
'class'=>'CButtonColumn',
),
),
)); ?>
Run Code Online (Sandbox Code Playgroud) 如何按升序显示序列号
1 Record Abc
2 Record Def
3 Record Xyz
Run Code Online (Sandbox Code Playgroud)
在Yii的CGridview中没有额外的数据库字段?
我正在关注这里的文件http://www.yiiframework.com/wiki/278/cgridview-render-customized-complex-datacolumns/
所以我有以下观点
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'item-table-grid',
'dataProvider'=>$model->search(),
'itemsCssClass'=>'item-table-grid',
'columns'=>array(
'customer_name',
array(
'name'=>'Edit',
'value'=>array($model, 'editLink'),
),
),
));
Run Code Online (Sandbox Code Playgroud)
这是模型中的editLink函数
public function editLink($data, $row) {
$link = '';
if ($data->is_draft) {
$link = '<a href="customer/update/'.$data->id.'">Edit</a>';
}
return $link;
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是返回值是编码的,所以我得到<a href=...>
有没有办法告诉CGridView不要对值进行编码?
谢谢
我试图为Yii的每个表行分配一个唯一的id CGridView.
最好是$data->id来自数据库表的东西.
我没有成功地id为每个渲染添加属性<tr>.
任何建议都将非常感激.
我有一个CGridView,我想放一个按钮刷新.
我已经尝试添加AjaxButton但我无法做到.
网格ID是会话网格.
我有一个只有CGridView的局部视图.
我设法让它工作,但它是重复的,原始停留在那里.我错过了什么?
非常感谢!
编辑:选择:
<?php
Yii::app()->clientScript->registerScript('initRefresh',<<<JS
$('#update-grid-button').on('click',function(e) {
e.preventDefault();
$('#session-grid').yiiGridView('update');
});
JS
,CClientScript::POS_READY);
$this->widget('bootstrap.widgets.TbButton', array(
'label'=>'Actualizar',
'type'=>'primary',
'icon'=>'repeat white',
'htmlOptions'=>array(
'id'=>'update-grid-button',
'class'=>'pull-right',
)
));
?>
Run Code Online (Sandbox Code Playgroud) 我为模型Faq生成了giix crud
控制器:
public function actionAdmin() {
$model = new Faq('search');
$model->unsetAttributes();
if (isset($_GET['Faq']))
$model->setAttributes($_GET['Faq']);
$this->render('admin', array(
'model' => $model,
));
}
Run Code Online (Sandbox Code Playgroud)
查看 - 管理员:
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id' => 'faq-grid',
'dataProvider' => $model->search(array('order'=>'order ASC')),
'filter' => $model,
'columns' => array(
'order',
'question',
'answer',
array(
'class' => 'CButtonColumn',
),
),
)); ?>
Run Code Online (Sandbox Code Playgroud)
我想按字段"秩序"的项目,所以我添加
array('order'=>'order ASC')
到$model->search();但这并没有改变任何东西.哪里出错?
我正在使用yii,我想在cgridview中显示数组的结果Cgridview代码说
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'users-grid',
'dataProvider'=>$dataProviderObj,
//'filter'=>$model,
'columns'=>array(
'companyName',
array(
'header'=>'Products',
'value'=>'$data->usersproducts',
),
Run Code Online (Sandbox Code Playgroud)
现在,usersproducts是维护访问者和产品之间多对多关系的关系名称
一般来说,如果我想从$ data-> usersproducts获取数据, 我会这样做
foreach($data->usersproducts as $record)
{
echo $record->productName;
}
Run Code Online (Sandbox Code Playgroud)
但我不知道如何在cgrid视图中获取此数据,因为foreach将无法在CGridView数组中工作?
我知道我可以使用($ this,functionName)并返回结果但我只想在数组中执行此操作.可能吗?如果是的话我怎么能这样做?
有人知道在CGridView中设置默认函数的可能性,它会在每次AJAX更新后在页面上的所有网格上运行吗?我在许多页面上使用CGridView,我不想分别为每个网格指定这个函数.我需要这个,因为我使用jQuery selectmenu作为我的过滤器下拉列表,并且在AJAX重新加载之后,它们需要再次被初始化.
'afterAjaxUpdate' => "function(id,data){$('select').selectmenu()}";
Run Code Online (Sandbox Code Playgroud) cgridview ×13
yii ×13
php ×6
jquery ×2
ajax ×1
firebug ×1
frameworks ×1
javascript ×1
select-menu ×1