2016-03-04 16 views
0

我想用DataTables 1.10+來使用Yadcf。我的情況是我的數據表中的每一行都有一個有4個單選按鈕的列。我希望能夠用Yadcf過濾這些數據。如果不使用自定義函數,我找不到任何方法。Yadcf custom_func無法用單選按鈕識別列值。

yadcf.init(oTable, [ 
     // { column_number: 0 }, 
     // { column_number: 1 }, 
     { 
      column_number: 2, 
      filter_type: "text" 
     }, 
     { 
      column_number: 3, 
      filter_type: "text" 
     }, 
     // { column_number: 4 }, 
     { 
      column_number: 5, 
      filter_type: 'custom_func', 
      custom_func: statusFilter, 
      data: JSON.parse(jsonStatus) 

您可以在第5欄看到我打電話叫statusfilter

function statusFilter(filterVal, columnVal) { 
    var found; 

    if (columnVal === '') { 
     alert('here'); 
     return true; 
    } 
} 

它正確地傳遞filterVal的自定義功能,但columnVal是空的拋出這樣我的警覺,並返回。

我試着仔細查看一下代碼,看到yadcf看到第5列的aData爲空。我不知道爲什麼。

有沒有人有任何想法,我可以使這項工作。

感謝,

+0

您可能需要更新datatables模型選擇該行上的無線電,但沒有一個示例jsbin/jsfiddle我真的無法幫助,您可以修改以下jsbin http://jsbin.com/ mexemavusu/edit?js,輸出 – Daniel

+0

我更新了jsbin。 http://jsbin.com/dudulapobe/edit?js,output它通過列值。不幸的是,它將所有單選按鈕作爲列值傳遞。我猜測我空白的原因是因爲它通過Ajax加載,但這看起來也是一個問題。 – pricejt

回答

0

我已經添加了增強0.9.0.beta.11,到custom_func - 第4'的說法 - 它擁有的錶行的HTML DOM。請參閱jsbin sample並檢查我是如何使用它的。

function myCustomFilterFunction(filterVal, columnVal, rowVal, stateVal) { 
    if (columnVal === '') { 
     return true; 
    } 

    if ($(stateVal[0]).filter(':checked').val() === filterVal) { 
     return true; 
    } 
    return false; 
} 

的事情是,你必須找到一種方法來更新您的鼠標readio按鈕選擇DOM這樣的過濾器將看到新的值是檢查 - 讓我知道你是如何做到的最終 - 也許用jquery或更新數據表模型