2010-08-24 6 views
1

-je avoir une vue partielle qui utilise un Telerik MVC Grille, et il a code de liaison colonne comme suit (vue très partielle):colonne latérale Contrôleur de liaison pour Telerik MVC Grille

.Columns(column => 
{ 
    column.Bound(model => model.PlannedFinishDate).Title("Planned Date").Format("{0:dd/MM/yyyy}").Width(83); 
    column.Bound(model => model.Province).Width(70); 
    if (Roles.IsUserInRole("Controller") == true) 
    { 
     column.Bound(model => model.InstallerName).Width(85); 
     column.Bound(model => model.InstallerAccepted).Title("Accepted").Width(45); 
     column.Bound(model => model.KitShippedDescription).Width(70); 
    } 
// etc. etc. 

Maintenant je dois écrire un action du contrôleur pour exporter les mêmes données que celles rendues dans la grille vers Excel, et j'ai besoin de la même inclusion/exclusion de colonne basée sur le rôle. Je ne veux pas dupliquer la logique de vérification de rôle, donc je cherche un moyen de générer les données utilisées ici pour la liaison de colonnes dans le contrôleur, transmettez-le avec ViewData, et utilisez-le dans la vue pour lier dynamiquement les colonnes .

+0

Laissez-moi ce redressait: vous voulez que l'utilisateur la possibilité de télécharger exactement la même HTML grille comme une feuille de calcul Excel en cliquant sur un lien? Ou enregistrer dans un fichier Excel sur le serveur? –

+0

Je souhaite que l'utilisateur puisse cliquer sur un lien et télécharger une feuille de calcul générée sur le serveur. Je ne peux pas laisser l'utilisateur télécharger la grille parce qu'elle est paginée, et le spreadhseet doit contenir toutes les pages. – ProfK

Répondre

1

Peut-être que this aiderait. Il y a une mise en garde bien - ce qui est encore en version bêta et l'API finale passera de

.Columns((IEnumerable<GridColumnSettings<T>>)ViewData["Columns"]) 

à

.Columns(columns => columns.LoadSettings((IEnumerable<GridColumnSettings<T>>)ViewData["Columns"])) 
+1

Je ne trouve pas le type GridColumnSettings n'importe où. – ProfK

+0

Il semble que * GridColumnSettings * soit nouveau sur Q2, toujours en version bêta, donc je ne serai pas autorisé à l'utiliser dans une application de production. – ProfK

+0

Ce sera officiel sous peu. –

Questions connexes