2012-05-08 2 views
1

CGridView 구성 요소의 DataProvider (CArrayDataProvider)로 사용 된 배열의 값을 사용하여 htmlOptions를 설정하려고합니다. 거기에있을 것이다 플래그가 중 (글꼴 - 무게 0 : 굵은 정상 1) 0 또는 1CGridView의 htmlOptions에 표현식 추가하기

'htmlOptions'=>array('style'=>'$data["flag"] == 1 ? font-weight: bold; : font-weight: normal;'), 

그것은 작동하지 않았다, 그래서 DataProvider에 직접 스타일을 설정하려고

'htmlOptions'=>array('style'=>'$data["style"]'), 

을하지만 출력은 다음과 같습니다 : 내가 잘못 뭐하는 거지

<td style="$data["style]">Value</td> 

(:; 또는 글꼴 무게 굵은 일반 글꼴 무게를 반환)?

답변

2

htmlOptions$data 또는 $ row를 사용할 수 없습니다. CDataColumn을 연장해야합니다.

자세한 방법은 this article을 참조하십시오. http://www.yiiframework.com/doc/api/1.1/CGridView#rowHtmlOptionsExpression-detail

당신은 모델 $ 데이터를 사용하여 $ 문자열에서 htmlOptions 배열을 평가하기 위해 행 번호에 대한 행 수

+0

이 나에게 많은 도움을 시도 할 수 있지만. 일부 문자열 concatenete했지만 작동하지 않았다. – Elathan

3

YII의 v1.1.13 지금 CGridView에 내장 된이 기능이 있습니다. htmlOptions의 PHP 배열은 문자열에 있음을

$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider' => $dataProvider, 
    'columns' => array(  
     'columns' => array(  
      array(
       'name'=>'Column Name 1', 
       "value"=>'$data->colVal', 
      ),      
       'name'=>'Column Name 2', 
       "value"=>'$data->colExpression()', 
      ), 
      "modelAttributeUsingNameLabel", 
     ), 
    "rowHtmlOptionsExpression"=>'array(
          "onclick"=> 
          "window.location = \'.$this->url.\'" 
       )') 
); 

주의 사항 : 구문이 조금 이상한이기 때문에 나는 예를 보여 드리겠습니다. 그것은 이상합니다. 그러나 그것은 어떻게 작동합니까!

+0

매우 유용하고 사용하기 쉽습니다. – tinybyte

0

htmlOptions에는 $ data에 대한 액세스 권한이 없습니다. 나는 몇 가지 고정 된 스타일 플러스 일부 dinamic을 설정하기를 원한다면 그래서 당신은 무엇을이

'value' => '($data["flag"] == 1 ? "<b>$data->your_value</b> ":"$data->your_value")',