在kartik dynagrid中设置空文本

时间:2016-08-06 11:43:09

标签: yii2 yii2-advanced-app

使用kartik dynagrid,我想设置一个文本,显示dataprovider何时返回空

网格

echo DynaGrid::widget([
            'columns' => $columns,
            'showPersonalize' => true,
         'emptyText'=>'Sorry all pr have pritems',///-----------------This is what i had set
            'options' => ['id' => 'assignsolic-grid'],
            'gridOptions' => [
                'options' => ['id' => 'grid'],
                'dataProvider' => $dataProvider,
                 'filterModel' => $searchModel,
                 'showPageSummary'=>false,
                'pager' => [
                    'firstPageLabel' => 'First',
                    'lastPageLabel' => 'Last',
                    'maxButtonCount' => 10,
                ],
                   'panel' => [
             'type' => GridView::TYPE_PRIMARY,
                       // 'heading' => '<h3 class="panel-title"><i class="glyphicon glyphicon-book"></i> </h3>',
                      'before'=>'<i>Select the Prs to assign solicitation and then click the Assign Solicitation button</i>',
                      'after' =>

        Html::button(' <i class=" glyphicon glyphicon-road "></i> Assign Solicitation ', ['value' => Url::to('assignsolc'),'class' => 'btn btn-danger', 'id' => 'assignsolic']),

                        'footer' => false
                    ],
                'toolbar' => [
                    ['content' => '{dynagridFilter}{dynagridSort}{dynagrid}'],
                    '{export}',
                    '{toggleData}'
                ],
                'pjax' => true,
                'bordered' => false,
                'striped' => true,
                'condensed' => true,
                'responsive' => true,
                'responsiveWrap' => false,
                'containerOptions'=>['style'=>'overflow:scroll'],
            ]
        ]) ;

这引发了设置未知属性的错误:kartik \ dynagrid \ DynaGrid :: emptyText如何设置空文本

2 个答案:

答案 0 :(得分:1)

您可以直接在confi / main.php格式化程序组件

中定义null显示的值
'components' => [
   .......
        'formatter' => [
        'class' => 'yii\i18n\Formatter',
        'dateFormat' => 'dd.MM.yyyy',
        'decimalSeparator' => ',',
        'thousandSeparator' => ' ',
        'currencyCode' => 'EUR',
        'nullDisplay' => '',           // **** this param 
    ],
 ..... 

否则如果小部件没有提供适当的属性,您可以使用匿名函数作为值

  [
    'attribute' => 'your_attribute',
    'value' => function ($model) {
        if ( $model->your_attribute == NULL) {
            return  'Sorry all pr have pritems';
        } else {
            return $model->your_attribute;
       }
     },
  ],

答案 1 :(得分:0)

由于我使用$ dataProvider,我发现我只需检查dataProvider是否为空

if (!$dataProvider->totalCount > 0) { pass in message to display }
 else{?>

  SHOW THE GRID HERE

 <?php
  }
  ?>

   ?>