JQGrid, Modifier L'Url
Je suis nouveau sur jQuery, et j'ai besoin d'utiliser jqGrid dans mon projet.
J'ai un problème avec edit/delete/insert; je n'ai qu'une URL, editurl
, puis dans le contrôleur, je suis en utilisant le oper
propriété de décider si c'est une insertion ou une suppression.
Mais je veux avoir une URL distincte pour le modifier, supprimer et insérer des opérations dans jqGrid. Pourriez-vous s'il vous plaît laissez-moi savoir comment y parvenir?
Côté Client code:
$(document).ready(function () {
var lastsel2;
var grid = jQuery("#list5").jqGrid({
url: '/home1/GetUserData',
datatype: "json",
mtype: "POST",
colNames: ['Code', 'LoginID', 'Emailid', 'CreateDate'],
colModel: [
//{ name: 'act', index: 'act', width: 75, sortable: false },
{name: 'Code', index: 'Code', width: 55, editable: true },
{ name: 'LoginID', index: 'LoginID', width: 90, editable: true },
{ name: 'Emailid', index: 'Emailid', width: 100, editable: true },
{ name: 'CreateDate', index: 'CreateDate', width: 100, editable: true }
],
rowNum: 10,
width: 700,
height: 300,
rowList: 10,
pager: $("#pager2"),
editurl: "/home1/EditUserData",
onSelectRow: function (id) {
if (id && id !== lastsel2) {
if (id == "new_row") {
grid.setGridParam({ editurl: "/home1/InsertUserData" });
}
else {
grid.setGridParam({ editurl: "/home1/EditUserData" });
}
jQuery('#list5').restoreRow(lastsel2);
$("#list5_ilsave").addClass("ui-state-disabled");
$("#list5_ilcancel").addClass("ui-state-disabled");
$("#list5_iladd").removeClass("ui-state-disabled");
$("#list5_iledit").removeClass("ui-state-disabled");
lastsel2 = id;
}
},
caption: "Simple data manipulation"
});
jQuery("#list5").jqGrid('navGrid', '#pager2', { edit: false, add: false, del: true, search: false, refresh: false }, {}, {}, { url: '/home1/DeleteUserData' });
jQuery("#list5").jqGrid('inlineNav', "#pager2", { edit: true, add: true, del: true, search: false, refresh: false });
});
Vous devez vous connecter pour publier un commentaire.
Vous pouvez passer des options pour toutes les actions avec navGrid méthode comme ceci:
Veuillez lire plus ici et ici.
Mise à JOUR
En cas de inlineNav méthode jqGrid est en passant toujours le même ensemble de paramètres (editParams) à saveRow méthode. Comme l'effet de modifier/ajouter une demande sera faite vers la même URL. Vous êtes collé avec de la vérification
oper
de distinguer les modifier pour ajouter.Dans le sujet de rechargement de la grille, vous pouvez utiliser editParams pour définir aftersavefunc pour déclencher
realoadGrid
comme ceci:Mais rappelez-vous qu'il entraînera également un rafraîchissement après modification (à cause de la même raison, comme décrit ci-dessus) - vous pouvez essayer d'utiliser la réponse de paramètre de distinguer les deux. J'ai également supprimé del, de recherche et d'actualiser à partir du code que inlineNav n'ont pas ces options.