Search the Community
Showing results for tags 'cgridview'.
-
Hello, I am using a CGridView with a CSqlDataProvider. I would like to dynamically change the text displayed in the cells for some columns. For instance: - instead of displaying a name, I would like to display a link - if a certain value is present, display this value in red I mean I want to put HTML in my cells and expect this HTML to be parsed and rendered by the browser. I don't want to change the class of the underlying <tr>, <td>... For so doing I put some expressions in the 'columns' array: 'columns' => array( 'phase', 'app', array( 'name' => 'version', 'value' => "preg_replace('/($today.+)/','<span style=\'color: red;\'>\$1</span>', \$data['version'])" ) , 'comment', 'nb', array( 'name' => 'deadline', 'value' => '"<a href=\'candidateRelease/view/id/\$data[\'id\']\'>\$data[\'deadline\']</a>)"' ) , 'status' ), Expression seems to be evaluated correctly but the text rendered in the cell shows the html tags (as if the result of the evaluation had gone through a call to htmlentities(). Does someone know how I could change this ? Thanks and regards.
-
I have been using the Yii Book to create an admin module for a site I didn't create that uses the yii framework. I was able to successfully create the module, apply login functionality to it, and implement Yii booster for extendedgrid functionality with inline editing. I can link the text from a column using the foreign key relation to a different model's view (primary key) and display those results using the TbExtendedGridView. What doesn't seem to work for me is displaying the results according to a different attribute other than the primary key. Link: http://mysites.com/index.php?r=admin/registrations/adminlinked&id=29 http://mysites.com/index.php?r=admin/registrations/divisionLevel&id=3 RegistrationController: public function actionAdminLinked($id) { $model = $this->loadModel($id, 'Registrations'); $this->performAjaxValidation($model, 'registrations-form'); if (isset($_POST['Registrations'])) { $model->setAttributes($_POST['Registrations']); if ($model->save()) { $this->redirect(array('view', 'id' => $model->ID)); } } $this->render('adminlinked', array( 'model' => $model, )); } public function actionDivisionlevel($id) { $model=Registrations::model()->with('divisionLevel','division','level','players')->findAllByAttributes(array( 'divisionLevelID'=>$id, )); $this->performAjaxValidation($model, 'registrations-form'); $this->render('adminlinked', array( 'model' => $model, )); } Note: I'd like to add the ability to display player names (2 to 4 depending on the registration), division and level names (through divisionLevel relations). actionAdminLinked displays results correctly. actiondivisionLevel displays a blank screen. What on earth am I doing wrong that I can't seem to get this to work? I've tried for hours.
- 1 reply
-
- cgridview
- attributes
-
(and 1 more)
Tagged with:
-
Hi there, I've got a column defined in a CGridView widget, in the view file admin.php, that correctly returns the course_number attribute from a related table: <?php $this->widget('zii.widgets.grid.CGridView', array( 'id'=>'course-taken-grid', 'dataProvider'=>$model->search(), 'columns'=>array( 'course.course_number', // Other columns array( 'class'=>'CButtonColumn', ), ), )); ?> For some reason, if I use the name/value syntax to do the same thing: array('name'=>'Course', 'value'=>'$data->course->course_number'), I get the error "Trying to get property of non-object". I can't figure out why. In the same CGridView widget, in the same file, a simliar query works: array('name'=>'Student Name', 'value'=>'$data->studentRecord->user->first_name . " " . $data->studentRecord->user->last_name'), And I need to do something similiar in order to obtain the course number and department abbreviation from related tables. Weird right? Thanks for any tips. Larry Z.