Les valeurs de réglage dans le Kendo UI multiselect
J'ai rencontré quelques difficultés et n'ont pas été en mesure de trouver une réponse à ce problème particulier. J'ai un multiple de kendo besoin pour remplir ses valeurs, quand j'ai un ID fourni. Dans la vue-je vérifier si j'ai l'ID dans la chaîne de requête
$(function () {
if (visitationID != "") {
var visitationIDs = $.getJSON('/Visitation/GetVisitationTypesByID', { id: visitationID }, 'json');
$("#visitTypeMulti").data("kendoMultiSelect").value(visitationIDs);
}
});
et comment je suis déclarant le multiSelect
<div id="visitTypeDiv">
<label>Visit Type: </label>
<input id="visitTypeMulti" />
</div>
var visitTypes = $("#visitTypeMulti").kendoMultiSelect({
placeholder: "Select a visitation type...",
dataTextField: "VisitationType",
dataValueField: "VisitationTypeID",
autoBind: false,
filter: "contains",
dataSource: {
type: "json",
serverFiltering: true,
transport: {
read: "/Visitation/GetVisitationTypes",
dataType: "json"
}
},
highlightFirst: true,
ignoreCase: true
});
et enfin le contrôleur de code qui renvoie les visitIDs dans un tableau. Je suis à l'aide d'une requête existante, puis en supprimant le texte de sorte qu'il est de retourner un tableau de seulement l'ID (entiers) je sais qu'ils doivent être des chaînes de caractères, donc je les force dans un tableau de chaînes.
public ActionResult GetVisitationTypesByID(int id)
{
VisitationDetailsModel model = new VisitationDetailsModel();
var rawData = model.RetrieveVisitationTypes(id);
//now gurantee I strip out the Airport visitation
string[] visitTypes = rawData.Select(x => x.VisitationTypeID.ToString()).ToArray();
return Json(visitTypes, JsonRequestBehavior.AllowGet);
}
Lorsque j'ai mis la valeur je ne vois pas de changement, mais, si je l'ai changer de valeurs codées en dur $("#visitTypeMulti").data("kendoMultiSelect").value(["1","5"]);
Il fonctionne très bien. Aussi, si j'essaie un JSON.Parse() sur le visitationIDs j'obtiens une erreur. Je n'ai vérifier le JSON de retour et c'est les mêmes données dans l'exemple codé en dur ["1","5"]. Ce que je fais mal/comment dois-je formater les données de manière à ce que le Kendo UI va le prendre? Merci à l'avance.
Vous devez vous connecter pour publier un commentaire.
Choses se passent en parallèle... Quand vous faites cela:
Vous avez un thread qui effectue l'
getJSON
et cela prend un certain temps...En parallèle, vous avez votre thread principal à l'aide de
visitationIDs
... mais cela n'avons pas encore de données sur elle.Essayez de définir une alerte entre les deux phrases:
Si cela fonctionne, ma théorie est correcte... Maintenant ce que vous devez faire est d'attribuer les valeurs une fois que les données sont arrivées. Quelque chose comme:
Voir jQuery.getJSON documentation ici