2013-05-06 55 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