J'ai des formateurs qui fonctionnent pour les dates et les nombres. Mon formateur pour un lien fonctionne seulement à mi-chemin pour une raison quelconque. Tout ce que je reçois dans ma grille sont des liens comme celui-ci:jqgrid showLink ne fonctionne pas
?id=1
Lorsque le réglage baseLinkUrl n'est pas utilisé (ou inclus) dans l'URL.
Voici mon JavaScript:
$(function() {
$("#d5d02a55-ba5e-46f2-a64a-05fd7870b273_list")
.jqGrid({
url: '/jqgrid2/getDataJson',
datatype: 'json',
mtype: 'GET',
colNames: ['Inv No', 'Date', 'Amount', 'Tax', 'Total', 'Notes'],
colModel: [{
"name": "invid",
"index": "invid",
"width": 55,
"formatter": "showlink",
"formatteroptions": {
"baseLinkUrl": "jsp/samplePage.jsp",
"target": "_blank",
"idName": "invid"
}
}, {
"name": "invdate",
"index": "invdate",
"width": 90,
"formatter": "date",
"formatteroptions": {
"srcformat": "yyyy-MM-dd",
"newformat": "MM/dd/yyyy"
}
}, {
"name": "amount",
"index": "amount",
"width": 80,
"align": "RIGHT",
"formatter": "number",
"formatteroptions": {
"decimalPlaces": 2
}
}, {
"name": "tax",
"index": "tax",
"width": 80,
"align": "RIGHT",
"formatter": "number",
"formatteroptions": {
"decimalPlaces": 2
}
}, {
"name": "total",
"index": "total",
"width": 80,
"align": "RIGHT",
"formatter": "number",
"formatteroptions": {
"decimalPlaces": 2
}
}, {
"name": "note",
"index": "note",
"width": 150,
"sortable": false
}
],
pager: '#d5d02a55-ba5e-46f2-a64a-05fd7870b273_pager',
rowNum: 5,
rowList: [5, 10, 25, 50],
sortname: 'invid',
sortorder: 'asc',
viewrecords: true,
multiselect: false,
gridview: true,
caption: '',
height: 'auto',
jsonReader: {
root: 'data',
page: 'currentPage',
total: 'totalPages',
records: 'totalRecords',
repeatitems: false,
id: 'id'
}
});
});
Et mes données:
{ "currentPage" : "1",
"data" : [ { "amount" : 1000.0,
"invdate" : "2013-04-01 00:00:00",
"invid" : 1,
"note" : "No notes",
"tax" : 60.0,
"total" : 1060.0
},
{ "amount" : 200.0,
"invdate" : "2013-04-02 00:00:00",
"invid" : 2,
"note" : "",
"tax" : 12.0,
"total" : 212.0
},
{ "amount" : 500.0,
"invdate" : "2013-04-03 00:00:00",
"invid" : 3,
"note" : "",
"tax" : 30.0,
"total" : 530.0
},
{ "amount" : 400.0,
"invdate" : "2013-04-03 00:00:00",
"invid" : 4,
"note" : "Some notes",
"tax" : 24.0,
"total" : 424.0
},
{ "amount" : 200.0,
"invdate" : "2013-04-04 00:00:00",
"invid" : 5,
"note" : "",
"tax" : 12.0,
"total" : 2012.0
}
],
"limitRows" : "5",
"totalPages" : "3",
"totalRows" : "11"
}
J'ai corrigé ma faute d'orthographe pour les options de format, changé les formats de date et tout semble fonctionner. Génial! Je n'ai pas apporté la modification à jsonReader pour l'ID, et les URL sont en cours de rendu OK. Je me demande pourquoi c'est? –
@MichaelSobczak: Avez-vous inclus la propriété «key: true»? Avez-vous vérifié que vous avez des identifiants corrects sur la deuxième page? Si aucun identifiant n'est trouvé dans la grille, les valeurs 1, 2, 3, ... (comme vos identifiants de la première page) seront utilisées par défaut. – Oleg
Mes données d'échantillon avaient des ID de 1, 2, 3, donc mon test n'était pas valide. Laissez-moi essayer d'ajouter la propriété "key" et aussi d'ajouter une ligne avec un ID qui est quelques éléments après le dernier actuellement dans la table, pour être sûr que les choses marchent bien. Merci pour le conseil! –