2014-09-08 3 views
2

CGridView를 사용하고 있는데 잘 작동하지만 작은 prob가 있습니다. 행이 겹치기 때문에 (아래 화면 참조) 열을 관리하려면 Ecolumns Extension을 사용하기 시작합니다.CGridView에서 행 오버플로 Yii

여기 enter image description here

는이 JSFiddle example

아무도 그것을 관리하는 방법에 대한 어떤 생각을 가지고 있는가이다 하지만 언젠가 나는 모든 열을 표시해야하며 (특히 모바일 장치에서) 모두에서 편리 아니다, 모든 열이 표시 되더라도 Grid 내에서 모든 행이 맞도록하려면? 당신에게

편집 감사합니다 : 생성 된 HTML 코드

<div style="display: none" id="*****-grid-ecolumns-dlg"> 
<form id="*****-grid-ecolumns" action="/*****/index.php?r=*****" method="POST"> 
<input type="hidden" value="1" name="*****-grid-ecolumns-set" id="*****-grid-ecolumns-set" /> 
    <ul id="yw1"> 

<li class="ui-state-default" id="*****"><label><input type="checkbox" name="*****-grid-ecolumns[]" value="****" checked>&nbsp;****</label></li> 
<li class="ui-state-default" id="user_id"><label><input type="checkbox" name="*****-grid-ecolumns[]" value="user_id" checked>&nbsp;User</label></li> 

    </ul> 
<div><input type="submit" onclick="$(&quot;#*****-grid-ecolumns-dlg&quot;).dialog(&quot;close&quot;)" style="float: left" name="yt1" value="Apply" /> 
<input type="button" onclick="$(&quot;#*****-grid-ecolumns-dlg&quot;).dialog(&quot;close&quot;); return false;" style="float: right" name="yt0" value="Close" /> 
<input type="button" class="reset" value="Reset" style="float: right"> 
    </div></form></div> 

    <div class="grid-view rounded" id="*****-grid"> 
<a class="ecolumns-link" id="*****-grid-ecolumns-dlg-link" href="#">Settings</a> 
<div class="summary">Displaying 1-50 of 556 results.</div> 
<table class="items"> 
<thead><tr> 
<th id="*****-grid_c0"> 
<a class="sort-link" href="/*****/index.php?r=*****/index&amp;*****_sort=*****_id">*****</a> 
</th> 
<th id="*****-grid_c1"> 
<a class="sort-link" href="/*****/index.php?r=*****/index&amp;*****_sort=user_id">User</a></th> 
</thead> 
<tbody> 
<tr class="odd"> 
<td>*</td><td>*</td> 
<td>***</td><td>***</td> 
<td>***</td><td></td> 
<td></td><td></td> 
<td>***</td><td></td> 
<td></td><td></td> 
<td>***</td><td>***</td> 
<td class="button-column"><a class="update" title="Update" href="/*****/index.php?r=*****/update&amp;id=4"> 
<img src="/******/gr-update.png" alt="Update" /></a> 
<a title="Edit" href="****"> 
<img src="****/home.jpg" alt="edit" /> 
</a></td></tr> 
</tbody></table> </div> 

에게 PHP 코드를

<?php 
     $dialog = $this->widget('ext.ecolumns.EColumnsDialog', array(
       'options'=>array(
        'title' => 'Table Settings', 
        'autoOpen' => false, 
        'show' => 'fade', 
        'hide' => 'fade', 
       ), 
       'htmlOptions' => array('style' => 'display: none'), //disable flush of dialog content 
       'ecolumns' => array(
        'gridId' => '*****-grid', //id of related grid 
        'storage' => 'session', //where to store settings: 'db', 'session', 'cookie' 
        // 'fixedLeft' => array('CCheckBoxColumn'), //fix checkbox to the left side 
        'model' =>$dataProvider->model, //model is used to get attribute labels 

        'columns'=>array(
         '*****_id', 
         'user_id', 
         .... 
         .... 

         array('header'=>'Operations', 
          'class'=>'CButtonColumn', 
              'viewButtonImageUrl' => Yii::app()->baseUrl . '/css/gridViewStyle/images/' . 'gr-view.png', 
              'updateButtonImageUrl' => Yii::app()->baseUrl . '/css/gridViewStyle/images/' . 'gr-update.png', 
              //'deleteButtonImageUrl' => Yii::app()->baseUrl . '/css/gridViewStyle/images/' . 'gr-delete.png', 
             'template'=>'{update}{edit}', 

         ), 
        ), 
       ), 
)); 

$this->widget('zii.widgets.grid.CGridView', array(
     'id' => '*****-grid', 
     'dataProvider'=>$dataProvider, 
     'template' => $dialog->link()."{summary}\n{items}\n{pager}", 
     'pager' => array('cssFile' => Yii::app()->baseUrl . '/css/gridViewStyle/gridView.css'), 
     'cssFile' => Yii::app()->baseUrl . '/css/gridViewStyle/gridView.css', 
     'htmlOptions' => array('class' => 'grid-view rounded'), 
     'columns' => $dialog->columns(), 
    //'itemView'=>'_brochureview', 
    //'columns' => 3 
    //'filter'=>$model, 
    )); 

?> 
+0

, 아무도 귀하의 질문에 대답 할 수 없습니다. –

+0

하지만 테이블은 확장 기능을 사용하여 생성되지 않았지만 표준 CGridView 테이블인데 ext는 prob – Test404

+0

의 출처가 아닌 내 prob에 대한 부분적인 해결책이며 적어도 HTML 테이블 헤더를 게시하고 최소한 1-2 샘플 데이터 행 –

답변

1

여기 당신이 테이블에 필요한 추가 CSS입니다. 그러나 모든 것을 창 너비에 맞추면 더 작은 화면에서 부끄러워 보일 것입니다. 또한 각 테이블 셀은 기본적으로 동일한 너비가됩니다. 이 옵션을 작은 화면에만 적용하려면 CSS 미디어 쿼리를 사용하는 것이 좋습니다.

.grid-view table.items { 
    width: 100%; 
    table-layout: fixed; 
} 

업데이트 바이올린 : 확장에 의해 생성 된 HTML의 샘플없이 http://jsfiddle.net/37m6ja3v/2/

+0

도와 주셔서 감사합니다 : 1) 'thead'와 'tbody'요소 안에 float이 없습니다. 2) 누락 된 열이있는 것처럼 모든 코드를 복사하지 않았습니다. 3) 영향을주지 않습니다. 또는 변경 – Test404

+0

잘 이해할 수있는 jsfiddle 예제로 질문을 편집했습니다. – Test404

+0

답변이 업데이트되었습니다. –

관련 문제