Im newbie to yii,I want to update the CGridview date column with the date selected from datepicker shown in image,
My View Coding:
<?php
$this->widget('zii.widgets.jui.CJuiDatePicker',
array(
'name'=>'inline_datepicker',
'flat' => true, // tells the widget to show the calendar inline
)
); ?>
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'editsource-grid',
'dataProvider'=> Holidays::model()->search(),
'columns'=>array(
'seq',
array(
'name'=>'name',
'value'=>'Holiday',
'type'=>'raw',
'htmlOptions'=>array('width'=>5),
),
'date',
array(
'name'=>'is_active',
'value'=>'Y',
'type'=>'raw',
'htmlOptions'=>array('width'=>5),
),
),
)); ?>
Can anyone help me out?
I would just suggest making a column in the GridView which has a date picker as a filter. The following code only contains what is needed for it to work:
<?php $this->widget('zii.widgets.grid.CGridView', [
'afterAjaxUpdate' => 'js:function(){jQUery("#Model_date").datepicker()}',
'columns' => [
[
'name' => 'date',
'value' => '$data->date',
'filter' => $this->widget('zii.widgets.jui.CJuiDatePicker', [
'model' => $model,
'attribute' => 'date',
], true),
],
],
]);
Related
So I have created records and each has their own particular Service field. They are all filled up (not null).
In the MySQL database, there are also records of that field Service
But in my CGridView, my Service field is all blank. All the Service fields are blank for all the records. When I click on the button View - The one with the magnifying glass, it says Service - Not Set
Can I know what may cause the problem? Please help me Thanks!
UPDATED WITH CGRIDVIEW CODE
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id' => 'booking-grid',
'htmlOptions'=>array('class'=>'grid-view grid-size'),
'dataProvider' => $model->search(),
'filter' => $model,
'columns' => array(
array(
'name'=>'date',
'htmlOptions'=>array('style'=>'text-align:center', 'height'=>'50px', 'width'=>'80px'),
'headerHtmlOptions'=>array('height'=>'30px'),
),
array(
'name'=>'timeStart',
'header'=>"Time",
'htmlOptions'=>array('style'=>'text-align:center', 'width'=>'80px'),
),
array(
'name'=>'client_id',
'value'=>'GxHtml::valueEx($data->client)',
'filter'=>GxHtml::listDataEx(Client::model()->findAllAttributes(null, true)),
'htmlOptions'=>array('width'=>'200px'),
),
array(
'name'=>'service_id',
'value'=>'GxHtml::valueEx($data->service)',
'filter'=>GxHtml::listDataEx(Service::model()->findAllAttributes(null, true)),
),
array(
'name' => 'complete',
'header'=>'Status',
'value' => '($data->complete == 0) ? Yii::t(\'app\', \'Open\') : Yii::t(\'app\', \'Close\')',
'filter' => array('0' => Yii::t('app', 'Open'), '1' => Yii::t('app', 'Close')),
'htmlOptions'=>array('width'=>'60px', 'style'=>'text-align:center'),
),
'remarks',
array(
'class' => 'CButtonColumn',
'visible'=>true,
'htmlOptions'=>array('width'=>'70px'),
'template' => '{view}{update}{delete}{changeComplete}',
'buttons'=>array(
'view' => array(
'visible'=>"true",
),
'update' => array(
'visible'=>"true",
),
'delete' => array(
'visible'=>"UserIdentity::isRoleMember('Admin')",
),
'changeComplete' => array(
'visible' => '$data->complete=="0"',
'imageUrl' => 'images/complete.png',
'options' => array(
'title' => 'Complete',
),
'url' => 'Yii::app()->createUrl("booking/changeComplete", array("id"=>$data->id))',
'click' => "function(){
$.fn.yiiGridView.update(\"booking-grid\", {
type:'POST',
url:$(this).attr('href'),
success:function(data) {
$.fn.yiiGridView.update(\"booking-grid\");
}
})
return false;
}",
),
),
),
))); ?>
I have tried looking at other CGridViews with the same field, they look the same and they're working perfectly fine.
I think the problem is $data->service. Probably your data has a relation with the Service entity. So for accessing attributes of Service you should use $data->service->attributeName.
I want to update CGridview Date column on clicking the CJuiDatePicker's Date.
CJuiDatePicker Code:
<?php
$this->widget('zii.widgets.jui.CJuiDatePicker',
array(
'id'=>'date-picker-id',
'model' => Holidays::model(),
'attribute' => 'date',
'flat' => true,
'options'=>array(
'onSelect'=>'js: function(dateText) {
$("#schedules-grid").yiiGridView("update", {
data: "date="+dateText,
});
}'
),
)
); ?>
My grid code:
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'schedules-grid',
'dataProvider'=>Holidays::model()->search(),
'columns'=>array(
'seq',
array(
'name' => 'name',
'value' =>'"holiday"',
'type' => 'raw',
),
'date',
array(
'name'=>'is_active',
'value' =>'"Y"',
),
),
)); ?>
Im getting seleted date in "dateText" variable how to update that value in the grid's Date Column ????
using this to update yiiGridView $.fn.yiiGridView.update("schedules-grid")
'onSelect'=>'js: function(dateText) {
$.fn.yiiGridView.update("schedules-grid",
{data: "date="+dateText,
});`
I want to add single radio button to gridview row by row at yii. I googling like this "yii single radio button into cgridview" but I can't get what I want.
This is my gridview
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'acc-recei-grid',
'dataProvider'=>$model->search_implementerlist(),
'filter'=>$model,
'columns'=>array(
array(
'class' => 'CCheckBoxColumn',
'selectableRows' => 2,
'checkBoxHtmlOptions' => array(
'name' => 'implementers[]',
),
'value'=>'$data->id',
'checked'=>function($data, $row) use ($current_implementers){
return in_array($data->id, $current_implementers);
}
),
array(
'name'=>'lead_implementer',
'type'=>'raw',
'value' => 'CHtml::radioButtonList("lead_implementer","'. $lead_implementer .'",array($data->id), array("template" => "{input}", "style" => "width:20px!important", "separator"=>" "))',
),
'username',
),
)); ?>
How can I do?
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'acc-recei-grid',
'dataProvider'=>$model->search_implementerlist(),
'filter'=>$model,
'columns'=>array(
array(
'class' => 'CCheckBoxColumn',
'selectableRows' => 2,
'checkBoxHtmlOptions' => array(
'name' => 'implementers[]',
),
'value'=>'$data->id',
'checked'=>function($data, $row) use ($current_implementers){
return in_array($data->id, $current_implementers);
}
),
array(
'name'=>'lead_implementer',
'type'=>'raw',
'value' => 'CHtml::radioButtonList("lead_implementer","'. $lead_implementer .'",array("$data->id"=>"$data->id"), array("template" => "{input}", "style" => "width:20px!important", "separator"=>" "))',
),
'username',
),
)); ?>
I need to add a column in CGridView.
I use this:
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'user-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'pager' => array(
'firstPageLabel' => '<<',
),
'columns'=>array(
'username',
'name',
'email',
'creationDate',
array(
'class' => 'CButtonColumn',
'template' => '{change} {view}',
'buttons' => array(
'change' => array(
'url'=> "'http://test.com/userservice/".$model->username."'",
),
),
),
array(
'name' => 'test',
'value' => 'testtest',
)
),
));
But I got error:
Property "User.test" is not defined.
You're almost there, in your column array you would use the name param for attributes of the model in the dataprovider, instead for custom columns you can use header like so:
'columns'=>array(
...
array(
'header' => 'test',
'value' => '"testtest"',
),
...
)
You can write normal code on CGridView like this .
'columns'=>array(
'username',
'name',
'email',
'creationDate',
'test',
---
),
If you put code like this on your respective model .
---
public $test ;
public function afterFind() {
$this->test = 'Test Variable' ; // put your custom code to reflect exact need
return parent::afterFind();
}
---
Here is my code
$img= Yii::app()->params['questionImageUploadURL'].$model->q_type."/".$model->qImgRel->image_name;
<?php $this->widget('zii.widgets.CDetailView', array(
'data'=>$model,
'attributes'=>array(
'id',
'q_nationality_id',
'q_type',
'q_name',
array(
'name' => 'q_image_id',
'value' => (is_object($model->qImgRel)?CHtml::image($img,""):""),
'visible'=>(is_object($model->qImgRel)?true:false),
),
'opt1',
'opt2',
'opt3',
'opt4',
'answer',
),
)); ?>
Its display me like this
I dnt get image in my view
plz help me
Thanks in advance :)
Try this :-
array(
'name' => 'q_image_id',
'type' => 'raw'
'value' => (is_object($model->qImgRel)?CHtml::image($img,""):""),
),
<? php
$w="50px";$h="50px";
$this->widget('zii.widgets.grid.CGridView', array(
'id' => 'redcliffe-cms-grid',
'dataProvider' => $model->search(),
'filter' => $model,
'columns' => array(
'title','date','description',
array(
'filter' => '',
'type' => 'raw',
'value' => 'CHtml::image(Yii::app()->baseUrl ."/upload/" .$data>image,"",array(\'width\'=>\'50\', \'height\'=>\'50\'))',
),
array(
'class' => 'CButtonColumn',
),
),
));
? >
http://www.yiiframework.com/doc/api/1.1/CDetailView#attributes-detail
A simple
array(
'name'=>'filename',
'value'=> CHtml::image(Yii::app()->request->baseUrl.'/path/'.$model->filename),
'type'=>'raw',
),
would do the trick (don't forget the type 'raw')