2017-10-03 3 views
1

J'utilise kartik gridView pour montrer des données. J'essaye de fournir la largeur aux colonnes mais mon dépassement de données hors de sa limite de cellules et n'emballe pas. J'utilise le code suivant:Kartik gridView Le texte ne s'enroule pas dans la cellule

$columns = [ 
    ['class'=>'kartik\grid\SerialColumn', 'width'=>'38px'], 

    [ 
     'attribute'=>'bill_number', 
     'vAlign'=>'middle', 
     'hAlign'=>'left',    
     'noWrap' => false, 
     'headerOptions'=>['style'=>'max-width: 100px;'], 
     'contentOptions'=>['style'=>'max-width: 100px;'], 
     'format'=>['html'], 
     'pageSummary'=>'Page Total' 
    ], 

    [ 
     'attribute'=>'bill_date', 
     'vAlign'=>'middle', 
     'hAlign'=>'left', 

     'noWrap' => false, 
     'headerOptions'=>['style'=>'max-width: 100px;'], 
     'contentOptions'=>['style'=>'max-width: 100px;'], 
    ], 

    [ 
     'attribute'=>'party_name', 
     'vAlign'=>'middle', 
     'hAlign'=>'left', 

     'noWrap' => false, 
     'headerOptions'=>['style'=>'max-width: 100px;'], 
     'contentOptions'=>['style'=>'max-width: 100px;'], 
     'format'=>['html'], 
    ], 
    [ 
     'attribute'=>'assignment_name', 
     'vAlign'=>'middle', 
     'hAlign'=>'left',    
     'noWrap' => false, 
     'headerOptions'=>['style'=>'max-width: 100px;'], 
     'contentOptions'=>['style'=>'max-width: 100px;'], 
    ], 

    [ 
     'attribute'=>'particulars', 
     'vAlign'=>'middle', 
     'hAlign'=>'left',    
     'noWrap' => false, 
     'headerOptions'=>['style'=>'max-width: 100px;'], 
     'contentOptions'=>['style'=>'max-width: 100px;'], 
     'format'=>['html'], 
    ],  

    [ 
     'attribute'=>'0-60 days', 
     'label'=>'0-60 days', 
     'vAlign'=>'middle', 
     'hAlign'=>'right', 
     'headerOptions'=>['style'=>'max-width: 100px;'], 
     'contentOptions'=>['style'=>'max-width: 100px;'], 
     'format'=>['decimal', 0], 
     'pageSummary'=>true 
    ], 

    [ 
     'attribute'=>'60-90 days', 
     'label'=>'60-90 days', 
     'vAlign'=>'middle', 
     'hAlign'=>'right', 
     'headerOptions'=>['style'=>'max-width: 100px;'], 
     'contentOptions'=>['style'=>'max-width: 100px;'], 
     'format'=>['decimal', 0], 
     'pageSummary'=>true 
    ], 

    [ 
     'attribute'=>'90-180 days', 
     'label'=>'90-180 days', 
     'vAlign'=>'middle', 
     'hAlign'=>'right',    
     'headerOptions'=>['style'=>'max-width: 100px;'], 
     'contentOptions'=>['style'=>'max-width: 100px;'], 
     'format'=>['decimal', 0], 
     'pageSummary'=>true 
    ], 
    [ 
     'attribute'=>'>180 days', 
     'vAlign'=>'middle', 
     'hAlign'=>'right',    
     'headerOptions'=>['style'=>'max-width: 100px;'], 
     'contentOptions'=>['style'=>'max-width: 100px;'], 
     'format'=>['decimal', 0], 
     'pageSummary'=>true 
    ], 
    [ 
     'attribute'=>'total', 
     'vAlign'=>'middle', 
     'hAlign'=>'right', 
     'headerOptions'=>['style'=>'max-width: 100px;'], 
     'contentOptions'=>['style'=>'max-width: 100px;'], 
     'format'=>['decimal', 0], 
     'pageSummary'=>true 
    ],  
]; 

echo GridView::widget([ 
    'columns'=>$columns, 
    'dataProvider'=>$dataProvider, 
    'floatHeader'=>true, 
    'floatHeaderOptions'=>['top'=>'50px'], 
    'floatOverflowContainer' => true, 
    'responsiveWrap'=>false, 
    'showPageSummary'=>true, 
    'resizableColumns'=>true, 
    'persistResize' => false, 
    'panel' => [ 
     'type'=>GridView::TYPE_PRIMARY, 

     'footer'=>false 
    ], 
    'containerOptions'=>['style'=>'overflow: auto'], 
]); 

ont bien voulu un coup d'oeil sur la capture d'écran grid screenshot

Je veux envelopper le texte dans la cellule et régler la hauteur de la ligne en fonction de la hauteur de la cellule max dans cette ligne.

+0

Essayez d'utiliser [width] (http://demos.krajee.com/grid#data-column) –

+0

Voir ce fil: [wrap automatique dans Kartik colonne GridView] (https://stackoverflow.com/ questions/33102752/auto-wrap-in-kartik-gridview-datacolumn) – iamsourabhh

Répondre

0

Essayez celui

[ 
    'class' => 'kartik\grid\DataColumn', 
    'attribute'=>'YOUR_ATTRIBUTE_NAME', 
    'headerOptions'=>['style'=>'max-width: 100px;'], 
    'contentOptions'=>['style'=>'max-width: 100px;vertical-align:middle'], 
    'format'=>'raw', 
    'value' => function($model) { 
      return "<p 'style'='max-width:150px; min-height:100px; 
      overflow: auto; word-wrap: break-word;'>". $model->YOUR_ATTRIBUTE_NAME."</p>"; 
    }, 
], 
+0

Cela n'a pas fonctionné. Je joins une capture d'écran pour le voir. cette grille est imbriquée dans une autre grille. Est-ce que cette information aidera – arun

0

Essayez ceci:

[ 
    'attribute'=>'attribute', 
    'value'=>function($data){ 
     return wordwrap($data->attribute,15,'<br>'); 
    } 
], 
0

Essayez cela, il pourrait aider.

[ 
     'attribute'=>'', 
     'header'=>'', 
     'value' => function ($dataProvider) { 
       return something; 
      }, 
     'format'=>'raw', 
     'contentOptions'=>['style'=>'width:80px;text-align:center;'] 
],