Kendo de source de données, la Façon de définir un Modèle.Id lors de l'utilisation de DataTable
Lors de la définition d'une source de données à l'intérieur de @(Html.Kendo().Grille(Modèle), j'ai utilisé avec succès
.DataSource( dataSource => .Ajax( ).Model( model => model.Id( m => m.PROPERTY ) ) )
où la PROPRIÉTÉ est une propriété de l'objet qui est le modèle. Quelle est la bonne syntaxe pour la définition de Modèle.Id si le Modèle est un Système.Les données.DataTable et la colonne Id dans la Table de données est TableId?
En d'autres termes, le modèle.Id( m => ??? ).
J'ai essayé, model.Id( m => Model.PrimaryKey )
, qui semble répondre à l'exigence de ce modèle.Id de l'être ensemble, mais de l'Action de mise à Jour (.Update(update => update.Action("MyUpdateMethod", "MyController")
) ne jamais frapper, donc je pense qu'il doit toujours être quelque chose de mal.
pourriez-vous m'indiquer un échantillon?
Dans la plaine, JavaScript, vous définissez
new kendo.data.DataSource({ schema: { model: { id: "PrimaryKey" } } });
si vous vouliez convertir JS au lieu de MVC helper, la meilleure chose à faire est d'utiliser le MVC helper une fois, l'affichage de la page dans votre navigateur, et de copier/coller l'généré du code JS. Puis remplacez votre MVC helper rasoir avec le code généré JS.OriginalL'auteur Kelly Cline | 2013-09-10
Vous devez vous connecter pour publier un commentaire.
Vous pouvez lier à une DataTable. En fait, nous faisons beaucoup de dynamique des grilles et des DataTable est notre seul recours. La reliure est un peu différent, cependant.
Un extrait de l'un des nôtres est comme ceci:
Nous n'modifier les données contenues dans la grille, mais pas en ligne. Nous modifier dans un popup de kendo de la fenêtre. Mais pour ce faire, il doit être conscient de la sélection et nous n'avons pas défini explicitement, c'est...ça arrive comme par magie. Vous essayez de modifier inline?
Lors de la définition de la Grille, nous définissons .Modifiable( e => e.Mode(GridEditMode.Popup).TemplateName( "OurTemplate")...ce qui nous obtient une fenêtre de l'éditeur. Avez-vous différemment? Quand nous sommes arrivés à Soumettre, notre contrôleur d'action pour la mise à jour ne touche pas, sauf si nous avons défini une classe personnalisée (dont les propriétés correspondent à la DataColumns) en 2ème paramètre de type (plutôt vaincre le but, je sais). Si je peut demander, qu'est-ce que votre mise à Jour de signature de la méthode?
Je suis l'aide de Kendo UI (2013.2.918) et je suis aussi en train d'essayer de lier d'une grille à un Système.Les données.DataTable. Un problème que je vais avoir, c'est que mon instruction T-SQL retourne les colonnes avec des espaces dans les noms de colonnes. À ne pas enfreindre une DataTable.. il est pris en charge.. mais je pense qu'il ne peut pas être pris en charge par Kendo de la Grille... je suis rowtemplate erreurs. Aussi, dans l'extrait de code ci-dessus - je ne vois pas dans mon intellisense tout invite à définir un .Modèle à l'intérieur .Source de données(dataSource => source de données .... )
J'ai compris que je dois créer mon propre ClientRowTemplate de faire DataColumns avec ColumnNames contenant des espaces de travail. Aussi, pour ma version de KendoUI, la source de données->le Modèle se trouve maintenant sous la source de données->Serveur->Model
OriginalL'auteur Bryan Hobbs
J'ai une réponse, même si elle n'est pas réel slick. Il y a plusieurs parties.
Tout d'abord, afin de Modifier, je dois définir un Modèle.Id, comment faire, ce qui était ma question initiale. La réponse est tout simplement,
model.Id( "KEY_COLUMN_NAME" )
dans le .Source de données.La méthode de modèle. Cependant, cela ne suffit pas à résoudre le problème de mise à Jour ne se produit pas. Telerik Soutien a suggéré que j'avais besoin de définir une coutume objet de données (POCO) qui ont tous les mêmes propriétés que le DataTable a des colonnes. Que POCO devient le type pour la mise à jourpublic ActionResult MyUpdate( [DataSourceRequest] DataSourceRequest _request, MyPOCO _data ){...}
L'Éditeur peut alors tracer le DataRow colonnes à la POCO propriétés, puis MyUpdate peut travailler.
OriginalL'auteur Kelly Cline