如何在GridView中添加Yii2 jui datepicker到过滤器字段

时间:2014-12-19 09:33:06

标签: gridview datepicker yii2

我使用的代码与我在ActiveForm中添加的代码相同,但它不起作用:

我在gridview的过滤器字段中添加jui datepicker的正确方法是什么?

<?= GridView::widget([
        'dataProvider' => $dataProvider,
        'filterModel' => $searchModel,
        'columns' => [
            ['class' => 'yii\grid\SerialColumn'],

            'list_id',
            [
                'attribute' => 'channel',
                'value' => 'channel.title',
            ],
            [
                'attribute' => 'list_date',
                'value' => 'list_date',
                'filter' => \yii\jui\DatePicker::widget(\yii\jui\DatePicker::className(), ['language' => 'ru', 'dateFormat' => 'dd-MM-yyyy']),
            ],
            'make_date',

            ['class' => 'yii\grid\ActionColumn'],
        ],
    ]); ?>

5 个答案:

答案 0 :(得分:10)

我试过这个并且工作正常:

[
    'attribute' => 'updated_at',
    'value' => 'updated_at',
    },
    'filter' => \yii\jui\DatePicker::widget([
        'model'=>$searchModel,
        'attribute'=>'updated_at',
        'language' => 'ru',
        'dateFormat' => 'dd-MM-yyyy',
    ]),
    'format' => 'html',
],

然后,您必须将此行添加到搜索模型中:

$query->andFilterWhere([
    ......
    'DATE(updated_at)' => $this->updated_at,
]);

确保日期格式相同。

答案 1 :(得分:1)

您的小部件参数错误,您应该使用htmlraw格式:

        [
            'attribute' => 'list_date',
            'value' => 'list_date',
            'filter' => \yii\jui\DatePicker::widget(['language' => 'ru', 'dateFormat' => 'dd-MM-yyyy']),
            'format' => 'html',
        ],

详细了解Data Formatting

答案 2 :(得分:1)

 [
            'attribute' => 'updated_at',
            'value' => 'updated_at',
            },
            'filter' => \yii\jui\DatePicker::widget([
                    'model'=>$searchModel,
                    'attribute'=>'updated_at',
                    'language' => 'ru',
                    'dateFormat' => 'dd-MM-yyyy',
                ]),
            'format' => 'html',
        ],

答案 3 :(得分:0)

您可以按日期选择器对文件管理器使用以下代码。

首次导入日期选择器

use kartik\date\DatePicker;

然后在gridview中使用以下代码

[
             'attribute' => 'order_date',
             'value' => 'order_date',
             'format' => 'raw',
             'label' => "Order Date",
             'filter' => DatePicker::widget([
                 'model' => $searchModel,
                 'name' => 'OrdersdropSearch[order_date]',
                 'value' => ArrayHelper::getValue($_GET, "OrdersdropSearch.order_date"),
                 'pluginOptions' => [
                     'format' => 'yyyy-mm-dd',
                     'autoclose' => true,
                 ]
             ])
         ],

搜索模型将相同。

答案 4 :(得分:0)

private void RichTxt_TextChanged(object sender, TextChangedEventArgs e)
{
    string text = new TextRange(richTxt.Document.ContentStart, richTxt.Document.ContentEnd).Text;
    FormattedText ft = new FormattedText(text, System.Globalization.CultureInfo.CurrentCulture, FlowDirection.LeftToRight, new Typeface(richTxt.FontFamily, richTxt.FontStyle, richTxt.FontWeight, richTxt.FontStretch), richTxt.FontSize, Brushes.Black);
    richTxt.Document.PageWidth = ft.Width + 12;
    richTxt.HorizontalScrollBarVisibility = (richTxt.Width < ft.Width + 12) ? ScrollBarVisibility.Visible : ScrollBarVisibility.Hidden;
}
  1. 避免在“过滤器”部分中使用“属性” =>“ updated_at”;

  2. 指定直接的“名称”属性(将为过滤器行中的相应输入指定名称)

相关问题