0

我正在开发应用程序2014年的剑道控制我没有访问最新的2017年或2018年)。在这个项目中,我有这样一个外键类型的多个列:如何在Kendo Grid ASP MVC中实现多选过滤?

columns.ForeignKey(p => p.StatusID, (System.Collections.IEnumerable)ViewData["status"], "ID", "Name").HeaderTemplate("Status") 

为了创建我遵循的基本例子电网:

http://demos.telerik.com/aspnet-core/grid/foreignkeycolumn

对于基本实现,它看起来和按预期工作,用户可以从筛选编辑选项的各种状态或用户中进行选择。

但是,我希望能够一次选择多个。我试图迁移这个例子中,这是剑道的jQuery

http://docs.telerik.com/kendo-ui/controls/data-management/grid/how-to/filtering/multiselect-used-for-column-filtering.html

如果他们实施了多选

multiselect

这应该是足够满足我的需求。我试图迁移到ASP MVC和现在,它看起来像这样:

@model object 

@(
Html.Kendo().MultiSelectFor(m => m) 
    .BindTo((MultiSelectList)ViewData[ViewData.TemplateInfo.GetFullHtmlFieldName("") + "_Data"]) 
) 

基本上,我取代下拉列表变成多选,但什么都没有改变我的筛选仍显示正常下拉,有没有多选:

dropdownlist

也许我应该做更多的变化,但我不知道我应该改变些什么;我想知道是否有人曾经经历过以及他们如何处理它,我已经尝试了多个示例和代码,但是我的模板更新了,它总是下拉列表。另一个有趣的例子,但它在jQuery的太多,我一直没能找到ASP MVC实现:

http://jsfiddle.net/victordscott/5kbfY/

而且,我知道,我想实现的可自2015年Q1:

http://demos.telerik.com/aspnet-mvc/grid/filter-multi-checkboxes

不幸的是,我没有获得任何新的版本我以前解释。提前感谢您的任何想法。

+0

所以你无法更新控制和你没有使用JavaScript/jQuery?[优点和缺点使用MVC包装与HTML/JS小部件](http://docs.telerik.com/aspnet-mvc/getting-started/ke n可-UI-VS-MVC-包装#列表的-利弊和禁忌症)。对于我来说(在过去的两年中,两者都在工作之后),MVC包装器感觉非常严格,您应该真正考虑客户端实现,尤其是当您试图将自定义应用于标准控件时。 – Sandman

+1

Hi @Sandman Hi @Sandman我理解你的观点,我更喜欢jQuery,但我的客户和团队完全在ASP中工作,这就是为什么我有点受限于ASP MVC而不是jQuery。此外,我应该重写很多代码,它不会是ASP中的一个部分的标准,而只是jQuery中的一个部分。 –

回答

0

不知道,如果它在这个旧的版本,但你可以给它用“EditorTemplate”

代码EditorTemplate的尝试:(发生在文件夹“EditorTemplates”,将其命名为FE“ myeditortemplate。CSHTML“)

@model object  

@(Html.Kendo().MultiSelect() 
      .Name("optional") 
      .AutoClose(false) 
      .Placeholder("Select attendees...") 
      .BindTo(new List<string>() { 
       "value1", 
       "value2",   
      }) 
    ) 

或远程数据源:

@model object  

@(Html.Kendo().MultiSelect() 
      .Name("optional") 
      .AutoClose(false) 
      .Placeholder("Select attendees...") 
      .DataSource(source => 
      { 
       source.Read(read => 
       { 
        read.Action("ReadAction", "MyController"); 
       }); 
      }) 
    ) 

然后在网格的定义:

... 
.. 
    column.Bound(c => c.optional).EditorTemplateName("myeditortemplate"); 
.. 
.. 

欢呼

+0

嗨,不,它不起作用,我试过了。谢谢你的时间 :)。 –