中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在yii中利用gridview對時間段進行篩選

發布時間:2021-01-30 16:30:19 來源:億速云 閱讀:187 作者:Leah 欄目:開發技術

本篇文章給大家分享的是有關怎么在yii中利用gridview對時間段進行篩選,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

1.首先要在gridview中引入相關js,實現雙日期,這里選擇了jquery.daterangepicker.js,簡單大方(缺點:不能選擇年份,需要手動點擊,我這里不會大幅度跨年份,可用)

2.要在searchmodel里面對數據進行處理,進行時間查詢

3.坑:選擇日期后,輸入框沒有光標,需要二次點擊,然后回車才能實現數據刷新,與原裝gridview體驗相差較大

4.梯:在檢測到輸入日期數據后,使用jq模擬回車提交動作,完美實現了類似gridview的原裝體驗,絲般順滑

view中

<?php

//use yii\web\View;
use kartik\grid\GridView;
use yii\bootstrap\Html;
use common\helps\ArrayHelper;
use yii\helpers\Url;

//引入時間段js,這里使用了jquery.daterangepicker.js
$this->registerCssFile('/plugins/datep/css/daterangepicker.css');
$this->registerJsFile('/plugins/datep/js/moment.min.js');
$this->registerJsFile('/plugins/datep/js/jquery.daterangepicker.js');
$this->registerJsFile('/plugins/datep/js/demo.js');
?>

<body class="gray-bg">
  <div class="wrapper wrapper-content animated fadeInRight">
    <div class="row">
      <div class="col-sm-12">
        <div class="ibox float-e-margins">
           <?= backend\widgets\TitleBack::widget(['title'=>'記錄管理']) ?>
           
          <div class="ibox-content">  
            
          <?php
                   
            echo GridView::widget([
                'dataProvider' => $dataProvider,
                'filterModel' => $searchModel,
     
                'columns' => [
                  
                  ['class' => 'yii\grid\SerialColumn'],
                  ['class' => 'yii\grid\CheckboxColumn'],
                  'title',
                  
                  [
                    
                        'label'=>'下發時間',
                        'attribute'=>'issued',
                     'value' => function ($data) {
                      return ArrayHelper::get_date_time($data->issued);
                    },                    
                  ],
                ]
             ]);
          
          ?>
            </div>
            </div>
          </div>
        </div>
      </div>

    </div>
  </div>
</body>

demo.js放在最后說,先說PatentDataBdSearch  對輸入框發送過來的數據進行處理,時間段查詢數據庫

//時間段篩選
    if($this->issued){
      $time= explode('~', $this->issued);
      $query->andFilterWhere(['between', 'patent_data.issued', $time[0],$time[1]]); 
    }

demo.js   實現數據檢測,模擬回車操作

$(function(){
  
  /*
  define a new language named "custom"  插件設置
  */

  $.dateRangePickerLanguages['custom'] = 
  {
    'selected': 'Choosed:',
    'days': 'Days',
    'apply': 'Close',
    'week-1' : 'Mon',
    'week-2' : 'Tue',
    'week-3' : 'Wed',
    'week-4' : 'Thu',
    'week-5' : 'Fri',
    'week-6' : 'Sat',
    'week-7' : 'Sun',
    'month-name': ['January','February','March','April','May','June','July','August','September','October','November','December'],
    'shortcuts' : 'Shortcuts',
    'past': 'Past',
    '7days' : '7days',
    '14days' : '14days',
    '30days' : '30days',
    'previous' : 'Previous',
    'prev-week' : 'Week',
    'prev-month' : 'Month',
    'prev-quarter' : 'Quarter',
    'prev-year' : 'Year',
    'less-than' : 'Date range should longer than %d days',
    'more-than' : 'Date range should less than %d days',
    'default-more' : 'Please select a date range longer than %d days',
    'default-less' : 'Please select a date range less than %d days',
    'default-range' : 'Please select a date range between %d and %d days',
    'default-default': 'This is costom language'
  };
  
  
  //下面設置稱自己的輸入框選擇器
  $("input[name='PatentDataBdSearch[issued]']").dateRangePicker(
  {
     //時間段的類型設置,這里是輸入框時間段以~分隔,選擇時間后自動消失彈出框
     separator : ' ~ ',
     autoClose: true
  }).bind('datepicker-change',function(e,r)
  {
    try
    {
      console.log(r);
            //重要:如果檢測有輸入值了,就在輸入框顯示光標,或者模擬回車事件,自動提交,像gridview原生功能
              //不添加下面的代碼,將無法自動提交,
            var issued=$("input[name='PatentDataBdSearch[issued]']").val();
            console.log(issued);
            if(issued){
              //輸入之后顯示光標
              //$("input[name='PatentDataBdSearch[issued]']").focus();
                //模擬回車操作,輸入后自動提交,刷新數據,一定要設置時間計數器,否則將無法提交

              setTimeout(function(){
                e = jQuery.Event("keydown");
                e.keyCode = 13; //enter key
                jQuery("input[name='PatentDataBdSearch[issued]']").trigger(e);

              },100);
            }
    }catch(e){}
  });
});

以上就是怎么在yii中利用gridview對時間段進行篩選,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鄂州市| 宜川县| 定西市| 武义县| 柘城县| 桂东县| 禹城市| 资兴市| 乌拉特前旗| 华宁县| 连江县| 东光县| 正安县| 永吉县| 江川县| 庆元县| 琼结县| 襄汾县| 潮州市| 满洲里市| 青海省| 镇江市| 雷波县| 哈巴河县| 孙吴县| 信丰县| 渝中区| 运城市| 合肥市| 沂南县| 淮滨县| 全南县| 邵武市| 云霄县| 北票市| 涿鹿县| 尼木县| 长沙市| 晋江市| 宜兰市| 巴东县|