Réglage du type de contenu de la demande effectuée par jQuery jqGrid
Je suis en utilisant la dernière version de jqGrid: 3.6.4
Cela semble être un problème simple (ou au moins, elle a fait avant, j'ai passé quelques heures dessus):
Lorsque la grille envoie une requête au serveur (pour une action de contrôleur), son contenu est toujours de type:
application/x-www-form-urlencoded; charset=UTF-8
et je voudrais qu'il soit:
application/json; charset=utf-8
mais je ne trouve pas de moyen de définir le type de contenu (il n'y a pas de contentType option que vous vous trouviez sur un $.appel ajax par exemple).
Donc, juste pour clarifier, je ne demande pas comment faire pour définir le type de contenu sur jQuery demande de serveur, mais plus particulièrement à l'aide jqGrid, qui ne fournit pas une option évidente pour ce faire.
Merci, Nigel.
Mise à jour:
Oleg réponse fixe résolu.
Voici l'option paramètres de la grille:
jQuery("#ContactGridList").jqGrid({
url: '/ContactSelect/GridData/',
datatype: 'json',
ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
mtype: 'POST',
...
Vous devez vous connecter pour publier un commentaire.
Comment vous pouvez trouver dans le code de grid.base.js la
$.ajax
appel de remplissage de la grille contiennent ressemble à ce qui suit:De sorte que vous pouvez utiliser
ajaxGridOptions
option de jqGrid de régler ou de remplacer n'importe quel paramètre de$.ajax
demande. Parce que je utiliser JSON demande à mon serveur, j'ai mis de paramétrage général decontentType
commeLa
ajaxRowOptions
sont utilisés dans grid.inlinedit.js pour la ligne d'édition. Pour le formulaire de modifier d'autres paramètres, que j'ai mis aussi en tant que paramètre global:Comment vous pouvez voir mon serveur est un service de Détente (développé principalement dans le FMC et le reste en ASP.NET MVC). Parce que
$.jgrid.edit
est un paramètre à la fois pour "ajouter", "modifier" éléments, je ne pouvais pas changermtype: "PUT"
pour "modifier" seulement, ce que je fais dans les paramètres denavGrid()
.La dernière ajax paramètre que vous pourriez trouver intéressant aussi est
ajaxSelectOptions
. Vous pouvez le configurer de la même façon queajaxGridOptions
. Les paramètres deajaxSelectOptions
sont utiles si vous utilisezdataUrl
paramètre à l'intérieur deeditoptions
ousearchoptions
. J'utilise, par exemple,dataUrl
à l'intérieur decolModel
pour la définition des colonnes de typeedittype: 'select'
. Les valeurs possibles de l'option de sélection sera chargé à partir du serveur en ligne ou le formulaire d'édition ou à l'intérieur de la boîte de dialogue de recherche. Parce que pour un tel chargement de données sont utilisés ajax, il est correspondantajaxSelectOptions
option.Meilleures salutations.
beforeProcessing
venir plus tard, mais il peut être également très utile dans certains scénarios. Il permet de modifier la réponse du serveur en quelque sorte avant elle sera traitée par jqGrid.postData
paramètre etserializeGridData
rappel de jqGrid permet d'étendre les paramètres affichés sur le serveur pour de remplissage de la grille.serializeDelData
rappel de formulaire d'édition sera appelé par delGridRow la méthode que vous pourriez appeler directement ou indirectement. Vous pouvez ajouter d'autres données affichées lors de la suppression de la ligne. - On savoir comment vous les utilisezdelGridRow
et la version de jqGrid.ajaxEditOptions
etserializeEditData
. Il me confond, j'ai essayé d'utiliserajaxAddOptions
etserializeAddData
qui n'existe pas.