Wie zum initialisieren einer jqGrid mit den richtigen events für die Zeilen neu Sortieren (Sortierbar)
Ich möchte in der Lage, sich an die Ereignisse, die ausgelöst werden, während eine Sortierbare drag-und-drop-Vorgang (Neu 3.6 Sortierbare Zeilen), wie ich brauche, um zu bestehen, diese Informationen zurück in den Speicher. Ich habe versucht, onstop und beimstart von http://www.trirand.com/jqgridwiki/doku.php?id=wiki:jquery_ui_methods#drag_and_drop_rows_between_grids aber es scheint zu funktionieren nur mit dem drop-Ziel ist eine weitere Tabelle.
Danke,
Stephen
Den Spalten:
var col_names = ['Qty', 'SFC', 'Item Nbr', 'Brand', 'Product', 'Catalog', 'Price', 'UOM', 'Case', 'Remarks', 'Wt.', 'Par', 'Purchased', 'ProductId', 'SortPriority'];
var col_model = [
{ name: 'Quantity', index: 'Quantity', width: 22, sorttype: "number", editable: true, edittype: 'text', editoptions: { size: 10, maxlength: 15} },
{ name: 'ProductAttributes', index: 'ProductAttributes', width: 50 },
{ name: 'ItemNum', index: 'ItemNum', width: 50, align: "right" },
{ name: 'BrandName', index: 'BrandName', width: 100 },
{ name: 'ProducName', index: 'ProducName', width: 150 },
{ name: 'Catalog', index: 'Catalog', width: 100 },
{ name: 'Price', index: 'Price', width: 40, sorttype: "number", align: "right" },
{ name: 'UOM', index: 'UOM', width: 30 },
{ name: 'CasePack', index: 'CasePack', width: 30 },
{ name: 'PackageRemarks', index: 'PackageRemarks', width: 80 },
{ name: 'AveWeight', index: 'AveWeight', width: 30, align: "right" },
{ name: 'Par', index: 'Par', width: 25, align: "right", editable: true, edittype: 'text', editoptions: { size: 15, maxlength: 15} },
{ name: 'LastPurchaseDate', index: 'LastPurchaseDate', width: 40, align: "right" },
{ name: 'ProductId', index: 'ProductId', hidden: true, key: true },
{ name: 'SortPriority', index: 'SortPriority', hidden: true }
];
Netz:
favoriteGrid = $('#favoriteGrid');
favoriteGrid.jqGrid({
url: '/xxx/yyy/',
datatype: 'json',
ajaxGridOptions: { contentType: "application/json" },
jsonReader: {
id: "ProductId",
cell: "",
root: function (obj) { return obj.rows; },
page: function () { return 1; },
total: function () { return 1; },
records: function (obj) { return obj.rows.length; },
repeatitems: true
},
colNames: col_names,
colModel: col_model,
pager: $('#favoritePager'),
pginput: false,
rownumbers: true,
rownumWidth: 25,
rowNum: 1000,
autowidth: true,
height: '500px',
sortable: true, //enable column sorting
multiselect: true, //enable multiselct
gridview: true,
ignoreCase: true,
loadonce: true, //one ajax call per
loadui: 'block',
loadComplete: function () {
var gr = $('#favoriteGrid');
fixGridSize(gr);
},
onSelectRow: function (id) {
if (id && id !== lastSel) {
favoriteGrid.restoreRow(lastSel);
lastSel = id;
}
favoriteGrid.editRow(id, true);
},
onstop: function (event, ui) {
alert("onstop");
}
}).jqGrid('navGrid', '#favoritePager',
{ add: false, edit: false, del: false, search: true, refresh: false },
{},
{},
{},
{ multipleSearch: true, showQuery: false },
{}).jqGrid('sortableRows').jqGrid('gridDnD');
EDIT1:
Erzeugt die Tabelle von jqGrid IST sortierbar, so dass ich denke, es ist eine Frage der Verwendung dieser jquery-Funktionen nach der Initialisierung.
$('#favoriteGrid').bind("sortstart", function (event, ui) {
alert("start");
});
$('#favoriteGrid').bind("sortstop", function (event, ui) {
alert("stop");
});
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist eine gute Frage!
Fangen die Ergebnisse der Rückgriff der Spalten, die Sie verwenden sollten
sortable
als Funktion statt booleantrue
:sehen die demo. Wenn Sie neu anordnen 'Client' und 'Datum' Spalten, erhalten Sie die Warnmeldung
Den Spalten 'rn' und 'cb' verwendet intern für Zeile zahlen und Mehrfachauswahl-Checkboxen sind Erster und haben die Indizes 0 und 1. Die Spalten "Kunde" hat den index 2 und "Date" hat den index 3. Der
permutation
array nach der Neuordnung der 'Client' und 'Datum' werden die Spalten[0, 1, 3, 2, 4, 5, 6, 7, 8, 9]
Es ist wichtig zu erwähnen, dass, wenn Sie brauchen, um einige Optionen des jQuery-UI-Sortable sollten Sie ein anderes format der
sortable
parameter von jqGrid:sehen die nächste demo:
UPDATE: überwachung der Neuanordnung der Zeilen können Sie Folgendes tun:
sehen die demo. Sie können mehr detaillierte Informationen über die Zeilen vor und nach der neuen position der zu verschiebenden Zeile mit dem folgenden
sehen die nächste demo.
sortableRows
.Aktuellen Implementierung, die funktioniert, ist