jqGrid (Delete row) - Comment envoyer des données POST supplémentaires?
Je vais avoir des problèmes avec jqGrid supprimer le mécanisme tel qu'il n'envoie que "oper" et "id" paramètres dans le formulaire de données POST (id est la clé primaire de la table).
Le problème c'est que je dois supprimer une ligne en fonction de l'id et une autre colonne valeur, disons user_id. Comment ajouter cette user_id pour les données POST?
Je peux résumer comme suit:
- Comment obtenir la valeur de la cellule (user_id) de la ligne sélectionnée?
- ET, comment ajouter que user_id pour le POST de données de sorte qu'il peut être récupéré à partir du code-behind, où le processus de suppression.
Des exemples de codes:
jQuery("#tags").jqGrid({
url: "subgrid.process.php,
editurl: "subgrid.process.php?,
datatype: "json",
mtype: "POST",
colNames:['id','user_id','status_type_id'],
colModel:[{name:'id', index:'id', width:100, editable:true},
{name:'user_id', index:'user_id', width:200, editable:true},
{name:'status_type_id', index:'status_type_id', width:200}
],
pager: '#pagernav2',
rowNum:10,
rowList:[10,20,30,40,50,100],
sortname: 'id',
sortorder: "asc",
caption: "Test",
height: 200
});
jQuery("#tags").jqGrid('navGrid','#pagernav2',
{add:true,edit:false,del:true,search:false},
{},
{mtype:"POST",closeAfterAdd:true,reloadAfterSubmit:true}, //add options
{mtype:"POST",reloadAfterSubmit:true}, //del options
{} //search options
);
source d'informationauteur ronanray
Vous devez vous connecter pour publier un commentaire.
Il n'est pas un problème. Il y a différentes façons de faire ce que vous avez besoin. La façon la plus directe est l'utilisation de
serializeDelData
fonction. Le code de jqGrid qui supprimer des lignes ressembler à ce qui suitDe sorte que vous pouvez définir votre propre
serializeDelData
fonction de faire tout ce dont vous avez besoin:Par ailleurs, si vous souhaitez produire vous-même les données publiées sur le serveur, il suffit de retourner une chaîne de caractères au lieu d'un objet. Ensuite, les données seront affichées par jQuery.ajax sans aucun changement.
Si vous préférez passer une information supplémentaire pas dans les données, qui sont affichés, mais dans l'URL, vous pouvez le faire à l'intérieur de
onclickSubmit
. J'utilise par exemple un service de Détente sur le côté serveur et pour supprimer un article que j'ai utiliser SUPPRIMER la requête HTTP avec le corps est vide. Tous les paramètres sont placés dans l'URL. Le code correspondant ressemble à ce qui suit:C'est comment je suis arrivé à jqGrid pour ajouter plus de données pour le POST sur supprimer:
Cela renvoie un post array {id:rowNumber, oper:del, nom:someValue}.
name
est la façon dont vous souhaitez consulter votre variable dans l'après tableau,someValue
est tout ce qui est dans la cellule de la ligne qui vous intéresse.Espérons que cette aide!
Cela peut être facile si vous définissez clés:vrai dans colModel comme ceci:
colModel: [
{name: 'childId', index: 'childId', align: 'center', sorttype: 'string', key:true},
le faire entraînera automatiquement pour envoyer ce domaine pendant le POST.
L'intention de clés:vrai dans colModel est juste pour permettre au processeur de commande pour fonctionner correctement indexés sur un ensemble d'enregistrements.
J'ai eu le même problème. La façon dont je l'ai corrigé, c'était de mettre le user_id comme première colonne dans mon jsondata. et avec le jsonreader paramètres de la jqgrid vous pouvez accomplir cela va fonctionner.
http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data
regarder la jsonreader paramètres pour jsondata.
j'utilise:
et mes données, c'est comme
et maintenant, si je mettre à jour une ligne ou supprimer une ligne, je vais obtenir le nom d'utilisateur.
Espérons que cela peut fonctionner pour vous!
Je ne suis pas sûr de la façon de publier des données supplémentaires, mais vous pouvez essayer d'envoyer des données supplémentaires comme des paramètres de chaîne de requête dans le cadre de la supprimer-url.
Oui, vous pouvez ajouter des données supplémentaires à l'postdata à l'aide de onclickSubmit événement dans le cadre del paramètres de navgrid, Dans votre cas, si vous souhaitez envoyer user_id, y compris l'id, de faire quelque chose comme ceci