0

Je développe une application avec Kendo contrôles de 2014 (Je n'ai pas accès à la plus récente d'un 2017 ou 2018). Dans ce projet, j'ai plusieurs colonnes du type de clé étrangère comme celui-ci:Comment puis-je implémenter une sélection multiple pour le filtrage dans Kendo Grid ASP MVC?

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

Afin de créer la grille que je suivais l'exemple de base:

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

Pour la mise en œuvre de base, il ressemble et fonctionne comme prévu les utilisateurs peuvent choisir parmi une variété de statut ou d'utilisateurs dans le filtrage et édition options.

Cependant, j'aimerais pouvoir en sélectionner plusieurs en même temps. J'ai essayé de migrer cet exemple, qui est pour Kendo pour jQuery:

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

où ils ont mis en place un Sélection multi.

multiselect

Cela devrait être suffisant pour satisfaire mes besoins. J'ai essayé de migrer vers l'ASP MVC et maintenant, il ressemble à ceci:

@model object 

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

En fait, je l'ai remplacé la liste déroulante en multi Select, mais rien n'a changé mon filtrage affiche toujours la normale Drop Down, il est pas multi Select:

dropdownlist

Peut-être que je devrais faire plus de changements, mais je ne sais pas ce que je devrais changer; Je voudrais savoir si quelqu'un a déjà vécu cela auparavant et comment ils l'ont géré, j'ai essayé plusieurs exemples et codes, mais mon modèle plus récent change, c'est toujours la liste déroulante. Un autre exemple intéressant, mais il est en jQuery aussi, je ne l'ai pas été en mesure de trouver une implémentation en ASP MVC:

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

D'ailleurs, je me rends compte que ce que je voudrais réaliser est disponible depuis 2015 Q1:

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

Malheureusement, je n'ai pas accès à une version plus récente que je l'ai expliqué. Merci d'avance pour toute idée.

+0

Donc vous ne parvenez pas à mettre à jour les contrôles et vous n'utilisez pas JavaScript/jQuery? .. [Avantages et inconvénients en utilisant les wrappers MVC vs les widgets HTML/JS] (http://docs.telerik.com/aspnet-mvc/getting-started/ke ndo-ui-vs-mvc-wrappers # liste-de-pros-et-cons). Pour moi (après avoir travaillé avec les deux au cours des 2 dernières années), les wrappers MVC sont très restrictifs et vous devriez vraiment envisager une implémentation côté client, particulièrement lorsque vous essayez d'appliquer la personnalisation aux contrôles standard. – Sandman

+1

Salut @Sandman Je comprends votre point de vue et je préfère jQuery, mais mon client et mon équipe travaillent pleinement dans ASP, c'est pourquoi je suis un peu limité d'ASP MVC et pas de jQuery. En outre, je devrais réécrire beaucoup de code et il ne sera pas standard d'une partie dans ASP et une seule section dans jQuery. –

Répondre

0

ne sais pas si elle est disponible dans cette ancienne version, mais vous pouvez essayer avec l'utilisation de « EditorTemplate »

Code

pour EditorTemplate: (dans le dossier « EditorTemplates », nommez-fe: " myeditortemplate.cshtml ")

@model object  

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

ou pour-datasource à distance:

@model object  

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

puis dans la grille-définition:

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

acclamations

+0

Salut, non, ça ne marche pas, je l'ai essayé. Merci pour votre temps :). –