J'essaye d'employer select2 avec le chargement d'ajax.select2 avec la méthode de post ajax
Voici mon code:
clonedTemplate.find('[id^=detailsPhaseFinanceMinor_]').select2({
placeholder: "Select",
minimumInputLength: 1,
ajax: { // instead of writing the function to execute the request we use Select2's convenient helper
type: 'POST',
contentType: "application/json; charset=utf-8",
url: "mapBasic.aspx/GetFinSys",
dataType: 'json',
data: function (term, page) {
return "{'term':\"" + term + "\"}";
},
results: function (data, page) { // parse the results into the format expected by Select2.
// since we are using custom formatting functions we do not need to alter remote JSON data
return { results: data.Value };
}
}
});
L'appel ajax est à un webmethod/pagemethod dans le code-behind de la même page:
[WebMethod]
public static List<LookupCodeItem> GetFinSys(string term)
{
string stringToCompareTo = term.ToLower();
List<LookupCodeItem> result = new List<LookupCodeItem>();
// FIN SYS
using (mapEntities db = new mapEntities())
{
List<MPO_FINSYS_AMT> finSysCodes = (from x in db.MPO_FINSYS_AMT
select x).ToList();
foreach (MPO_FINSYS_AMT item in finSysCodes)
{
string valKey = string.Format("{0}.{1}.{2}", item.FY, item.MDOT_MPO_CD, item.FIN_SYS);
LookupCodeItem x = new LookupCodeItem();
x.Value = valKey;
x.ShortDescription = string.Format("{0}.{1}.{2}", item.FY, item.MDOT_MPO_CD, item.FIN_SYS); ;
x.LongDescription = string.Empty;
result.Add(x);
}
}
return result;
}
Lors de la saisie des données dans la zone de texte, la POST demande est faite, et le json est envoyé semble être correctement formaté. Cependant, la réponse de la méthode pagemethod est la page html entière. Je crois comprendre que cela peut se produire avec les méthodes post si votre "contentType" n'est pas correctement défini dans l'appel ajax. Je l'ai défini comme tous mes autres appels ajax qui fonctionnent sur la page (ils n'utilisent pas select2).
Est-ce que select2 ignore l'attribut "contentType"? Ou y a-t-il autre chose que j'ai mal fait?
** EDIT ** Après avoir affiché, je trouve cette question figurant sur le site GitHub de select2: Issue 492 - Add Support for contentType to Ajax
Il semble que cela ne passe pas par contentType. Suis-je capable de contourner l'aide ajax de selet2 et d'utiliser ma propre définition manuelle?
C'est une recommandation qui devrait être mise sur des commentaires, pas dans une réponse. En outre, comment les techniques de programmation changeantes aideraient-elles le PO, vraiment? – ilter
Était juste en train d'essayer de faire de l'affiche une solution facile à suggérer/supportée. Vu que cela a été fait il y a 7 mois, je ne peux pas faire grand chose à ce sujet maintenant! :-) –