telerik-grille onRowSelect comment faire pour obtenir l'id?
Salut, je suis nouveau dans asp.net mvc et telerik controls. Comment puis-je obtenir de l'o.Valeur de l'Id quand je clique sur la ligne?
<%= Html.Telerik().Grid(Model)
.Name("RolesGrid")
.DataKeys(keys => keys.Add(o => o.Id))
.Selectable()
.Columns(columns =>
{
columns.Bound(o => o.Name);
columns.Bound(o => o.Description);
})
.Pageable()
.ClientEvents(events => events
.OnRowSelect("onRowSelect"))
%>
dans le code js:
function onRowSelect(e) {
var ordersGrid = $('#RolesGrid').data('tGrid');
var row = e.row;
var dataItem = ordersGrid.dataItem(row);
alert(dataItem);
}
Mais dataItem est nulle et il n'y a pas de valeur d'id dans le fichier html généré. Merci et désolé pour mon mauvais anglais
telerik.com/help/aspnet-ajax/grid-onrowselected.html "get_gridDataItem() n'est pas disponible directement sur le client, à moins que OnRowCreating/OnRowCreated événements sont accrochés. Ceci est fait pour l'optimisation de but. Si vous avez besoin de la rowIndex, vous pouvez utiliser eventArgs.get_itemIndexHierarchical()"
OriginalL'auteur Sanja Melnichuk | 2010-12-10
Vous devez vous connecter pour publier un commentaire.
Donc, après tout ce que j'ai la meilleure façon d'obtenir l'id est:
écrire de code suivant dans onRowSelect
dataItem est une carte de la sorcière ont toutes les propriétés de la grille de modèle, de sorte que vous obtenez tout ce que vous voulez
C'est tout, merci
Ahmed MyGridId son réseau identificateur (nom de grille lorsque vous déclarez telerik grille, e argument en OnRowSelect fonction)
Dans la question, la grille semble être le côté serveur et côté serveur grille ne prennent pas en charge dataItem. C'est ce que j'ai lu de Telerik support technique...
OriginalL'auteur Sanja Melnichuk
De telerik grille de démonstration.
Vous devez mettre l'Id dans la telerik de la grille comme une colonne masquée.
Il rendra un
Et puis, vous obtenez de cette façon:
Notes:
.DataKeys(...)
méthode si il n'y a pas documenté manière à obtenir la valeur de la clé définie.Désolé pour la réponse tardive... je cherchais des problème similaire que j'ai eu quand je suis tombé sur cette question.
Alors que les contrôles telerik pour asp.net sont puissants, parfois, la personnalisation de la plus complexe des échantillons peut s'avérer difficile. Cet exemple a été sur place. facile comme bonjour!
J'ai quitté mon cachés id à la fin et a ajouté var id = e.ligne.les cellules[e.ligne.les cellules.longueur - 1].innerHTML; pour avoir toujours le dernier élément. Qui résout le problème avec le groupement de
OriginalL'auteur mmutilva
Je l'ai trouvé un peu plus élégante façon de le faire qui emprunte au large de mmutilva de réponse.
Commencer par se mettre dans la colonne masquée et l'événement de modification de la même façon:
Mais ensuite, dans la fonction javascript, il existe un meilleur moyen pour sélectionner l'objet, puis le caché ligne:
Source
OriginalL'auteur TatersGonnaT8
Modifier la fonction onRowSelect:
L'expéditeur sera la grille, et à partir de la args vous pouvez déterminer quel élément a été sélectionné.
Look à la Telerik site d'aide pour obtenir des informations détaillées sur la façon d'obtenir les données en utilisant le Côté Client de l'API:
http://www.telerik.com/help
Apoligies... j'ai fait une grosse supposition que la grille de la syntaxe est la même que le contrôle AJAX. Je vais punt celui-ci à un MVC expert. J'ai lu un peu sur la grille sur la Telerik site et il semble que votre onRowSelect code est correct. Dans le code ci-dessus, je ne vois pas où vous avez lié la grille de données.
Merci pour la réponse malade, essayez de regarder pour les données liées.
ne devriez-vous pas la marque de votre réponse pour la suppression, alors?
OriginalL'auteur ByteCrunchr