2016-03-16 48 views
0

表格此鏈接:自舉表服務器側濾波不工作(數據濾波器控制= 「選擇」)

Bootstrap table filtering not working

我的代碼:

<table 
    data-url="<?php echo Yii::app()->createUrl('sj/getdata_list'); ?>" 
    data-pagination="true" 
    id="tables" 
    class="table table-striped table-hover " 
    data-toggle="table" 
    data-side-pagination="server" 
    data-page-list="[5, 10, 20, 50, 100, 200]" 
    data-search="true" 

    data-show-pagination-switch="showPaginationSwitch" 
    data-filters="true" 

    data-filter-control="true" 
    data-sort-order="desc" 
    data-selectable-rows="true" 
    data-item-id="id" 
    data-show-columns="true" 
    data-selectable-rows-action="load_panels" 
    data-minimum-count-columns="1" 
    data-show-refresh="true" 
    data-search-align="left" 
    data-toolbar="#Customer-custom-toolbar" 
    data-show-filter="true" 
    data-striped="true" 
    data-sort-name="id" 
    data-show-toggle="true" 
    data-detail-view="true" 
    data-detail-formatter="detailFormatter" 

    data-id-field="no_sj" 
    data-editable-emptytext="-" 
    data-editable-url="<?php echo Yii::app()->createUrl('sj/edit_sj');?>" 

    data-filter-control="true" 
> 
    <caption style="border: inherit; background-color: lightgrey;"> 
     <span class="align-left"><strong>Tabel Pembelian yang belum diterima</strong></span> 
    </caption> 

    <thead> 
     <tr> 
      <th data-field="no_sj" data-sortable="true" data-filter-control="input">No Surat Jalan</th> 
      <th data-field="tgl_sj" data-sortable="true" data-filter-control="select">Tgl Surat Jalan</th> 
      <th data-field="cabang" data-sortable="true" data-filter-control="input">Cabang</th> 
      <th data-field="qnty" data-sortable="true">Quantity</th> 
      <th data-field="harga" data-sortable="true" class="hidden">Harga</th> 
      <th data-field="jt" data-sortable="true">JT</th> 
      <th data-field="stat_terima" data-sortable="true" data-filter-control="select" class='set_edit_status' data-editable-title='Status :' data-pk='no_sj' data-editable="true">Status</th> 
      <th data-field="tgl_terima" data-sortable="true" data-filter-control="datepicker" class='set_edit_tanggal' data-editable-type="date" data-editable-viewformat='dd-mm-yyyy' data-editable-clear='false' data-editable-format='dd-mm-yyyy' data-editable-datepicker='{weekStart:1}' data-pk='no_sj' data-editable="true" >Tanggal</th> 
      <th data-field="ket_terima" data-sortable="true" class="hidden">Ket</th> 
     </tr> 
    </thead> 
</table> 

在過濾器中的結果「選擇「沒有工作。 它只是顯示選擇顯示,如果在下一首/上頁的過濾器中選擇並沒有出現在選項選擇過濾器的頁面。

什麼我錯過?

+0

CZ卡住我」用另一種方式M,'數據工具欄=「#客戶爲定製工具欄」'我用用這個..這個問題仍然是開放,如果有人有答案,也許這會提高我的/別人的代碼自定義篩選.. –

回答

1

我有同樣的問題,並通過編輯自舉表濾波器js文件和重命名它作爲一個我的網頁上使用了與一個hackey解決方案上來。

我的未註釋行65:

selectControl = $(selectControl.get(0)); 

代替此(在線208開始):

if (column.filterData !== undefined && column.filterData.toLowerCase() !== 'column') { 
     var filterDataType = column.filterData.substring(0, 3); 
     var filterDataSource = column.filterData.substring(4, column.filterData.length); 

     var selectControl = $('.' + column.field); 
     addOptionToSelectControl(selectControl, '', ''); 

     switch (filterDataType) { 

     case 'url': 
      $.ajax({ 
      url: filterDataSource, 
      dataType: 'json', 
      success: function (data) { 
       $.each(data, function (key, value) { 
        addOptionToSelectControl(selectControl, key, value); 
       }); 
      } 
     }); 

利用該:

if (column.filterControl && column.searchable) { 

     var filterDataType = 'url'; 
     var filterDataSource = 'fema_filter_data.php?column='+column.field; 
     var selectControl = $('.' + column.field); 
     switch (filterDataType) { 

     case 'url': 
      $.ajax({ 
       url: filterDataSource, 
       dataType: 'json', 
       success: function (data) { 
        $.each(data, function (key, value) { 
         if(column.field === 'team'){ 
          addOptionToSelectControl(selectControl,value.team, value.team); 
         } 
        if(column.field === 'city'){ 
         addOptionToSelectControl(selectControl,value.city, value.city); 
        } 
        if(column.field === 'st_name'){ 
         addOptionToSelectControl(selectControl,value.st_name, value.st_name); 
        } 
        if(column.field === 'residence'){ 
         addOptionToSelectControl(selectControl,value.residence, value.residence); 
        } 
        if(column.field === 'type_abbr'){ 
         addOptionToSelectControl(selectControl,value.type_abbr, value.type_abbr); 
        } 
        if(column.field === 'own_rent'){ 
         addOptionToSelectControl(selectControl,value.own_rent, value.own_rent); 
        } 
        if(column.field === 'cat'){ 
         addOptionToSelectControl(selectControl,value.cat, value.cat); 
        } 
       }); 
      } 
     }); 
     break; 

其中內部的條件句每個列都是我想要過濾的列。 後來我不得不註釋掉這整個塊(起始於大約400?):

if ((!column.checkbox) || (!column.radio)) { 
       if (column.filterControl !== undefined && column.filterControl.toLowerCase() === 'select' && column.searchable) { 
        if (column.filterData === undefined || column.filterData.toLowerCase() === 'column') { 
         var selectControl = $('.' + column.field); 
         if (selectControl !== undefined && selectControl.length > 0) { 
          if (selectControl.get(0).options.length === 0) { 
           //Added the default option 
           addOptionToSelectControl(selectControl, '', ''); 
          } 

          //Added a new value 
          addOptionToSelectControl(selectControl, value, value); 
         } 
        } 
       } 
      } 

,因爲它覆蓋我的價值觀。 fema_filter_data.php是一個頁面專門設置了拉過濾器值,並返回JSON:

if($_GET['column'] == 'st_name'){ 
     $sql = "select trim(st_name) as st_name FROM v_idam_damaged_parcels dp 
     WHERE (".$damage_type." > 0 OR boot_type = 'IA') 
     AND dp.event_id = '".$_SESSION['event_id']."' 
     AND num_buildings > 0 
     group by st_name order by st_name"; 
    } 
    if($_GET['column'] == 'team'){ 
$sql = "select trim(t.team_name) as team FROM v_idam_damaged_parcels dp 
RIGHT JOIN parcel AS ps ON dp.parcel = ps.qpid 
LEFT JOIN event_team_region AS etr ON st_intersects(etr.the_geom,ps.the_geom) AND etr.event_id = ". $_SESSION['event_id']." 
LEFT JOIN teams t on t.team_id = etr.team_id 
WHERE (".$damage_type." > 0 OR boot_type = 'IA') 
AND dp.event_id = '".$_SESSION['event_id']."' 
AND num_buildings > 0 
group by t.team_name order by t.team_name"; 

} 等等

然後:然後

array_unshift($result,''); // first record showing in filter should be blank 
    echo json_encode($result); 
+0

哇,awsome夥計..你能給我演示嗎?我會盡快嘗試,有其他的功能可以做.. –