Ich habe eine jqGrid benutzerdefinierte Funktion als editrules: { custom: true, custom_func: checkforduplicates, required:true }
Benutzerdefinierte Funktion ist nur für den Bearbeitungsmodus, nicht-Modus hinzufügen, in jqGrid
Allerdings mag ich diese Funktion nur in Add-Modus ausgeführt werden, nicht im Bearbeitungsmodus. Ist das möglich ?
EDIT: - Nach der Antwort unten von Oleg, änderte ich den Code nach unten. Die Warnung wird jedoch nicht gedruckt. Ich bin mir nicht sicher, wo ich falsch liege.
colModel: [
{ key: true, name: 'id', editable: false, formatter: 'integer', viewable: false, hidden: true },
{
key: false,
name: 'name',
editable: true,
editrules: {
required: true,
custom: function (options) {
// options have the following properties
// cmName
// cm
// iCol
// iRow
// rowid
// mode - "editForm", "addForm", "edit", "add", "cell" and so on
// newValue - the value which need be validated
// oldValue - the old value
// some additional properties depends on the editing mode
alert("mode is " + options.mode);
if (options.mode === "add") { // "add" for inline editing
var grid = $("#grid");
var textsLength = grid.jqGrid("getRowData");
var textsLength2 = JSON.stringify(textsLength);
alert("i am here");
var myAttrib = $.map(textsLength,
function (item) { return item.name });
var count = 0;
for (var k in textsLength) {
if (textsLength.hasOwnProperty(k)) {
++count;
}
}
var text, i;
for (i = 0; i < count; i++) {
text = myAttrib[i];
if (value === text) {
return [false, " - Duplicate category name."];
}
}
return [true, ""];
}
return true;
}
}
},
Ist 'jqGrid 4.4.4 - jQuery Grid' ein 'freies jqGrid'? Wenn ich die obige benutzerdefinierte Funktion verwende, wird die darin enthaltene Warnungsanweisung nicht gedruckt. – Chakra
Ist Indien ein Teil von Großbritannien? Es hängt vom Zeitpunkt ab. Die Lizenzvereinbarung von jqGrid wurde Ende 2014 geändert, beginnend mit der Veröffentlichung von jqGrid 4.7.1 (siehe [die Veröffentlichung] (http://www.trirand.com/blog/?p=1438)). Basierend auf MIT/GPL Lizenzen von 4.7.0 habe ich ** den Fork ** von 4.7.0 gestartet, den ich unter dem Namen "free jqGrid" im Gegensatz zu Guriddo jqGrid JS entwickle, deren Preise Sie [hier] (http: : //guriddo.net/? page_id = 103334). Daher sind Versionen von jqGrid <= 4.7 frei, aber der Name "free jqGrid" bedeutet das Produkt, das ich entwickle. Es ist kompatibel zu 4.x-Versionen von jqGrid, hat aber viele neue Funktionen. – Oleg