2013-05-06 56 views
2

我有一些自定義過濾器,我可以把它們放在網格外,但它會看起來更好,如果它們位於與構建在一個相同的位置,我可以以某種方式更改過濾器模板或以其他方式更改構建在過濾視圖?我可以使用KOGrid自定義過濾器嗎?

這是我想擴展視圖與自定義過濾器

enter image description here

回答

1

我開始在KoGrid fork中實現它,但KoGrid模板代碼有點複雜,我沒有時間讓它立即工作。所以我做了一些黑客工具,並沒有改變KoGrid源

http://jsfiddle.net/t23Ub/10/

(function() { 
    function initGridTemplate() { 
      var template = $(kg.defaultGridTemplate()); 
      var filter = template.find("div.kgColMenu > div[data-bind='visible: showFilter']"); 
     filter.attr("data-name", "config.filterOptions.model"); 
      filter.html(""); 

      kg.defaultGridTemplate = function() { 
       return template[0].outerHTML; 
      }; 
    } 
    initGridTemplate(); 
}()); 

它通過添加視圖模型,文字的filterOptions。數據名字在上面的代碼是我的框架,找到的ViewModels類型的意見,你可以改爲做

filter.attr("data-bind", "template: { name: config.filterOptions.templateName, data: config.filterOptions.model }"); 

這就是我的數據-name屬性引擎蓋

2

目前格菜單(過濾器視圖)不具有自定義/編輯模板。

它是整個網格模板的一部分:gridTemplate.html

所以目前唯一的選擇是複製gridTemplate.html,並添加自定義過濾,那裏configure的KoGird與使用模板:

kg.defaultGridTemplate = function() { 
    return 'your new grid template html'; 
} 
+0

是在做什麼,但我需要修復自定義過濾器視圖模型的上下文等。我將更改源代碼並將其提交到KoGrid – Anders 2013-05-06 09:14:54

+0

是的,因爲KoGrid是一個開源項目,您可以隨時更改它以滿足您的需求,但目前的狀態是我的答案。所以如果你想爲你的過濾器也有一個自定義的數據上下文,那麼除了修改源代碼和引入這個功能外別無其他選擇。 – nemesv 2013-05-06 11:17:04