Ich verwende Free jqGrid 4.15.0, habe ich drei Checkbox-Spalten mit drei Bools gefüllt. Mit der Filtersymbolleiste funktioniert die Option "Alle", die Option "Wahr" funktioniert, aber die Auswahl "Falsch" stimmt mit nichts überein. Ich habe versucht, die Bools in ints (0, 1) umzuwandeln und die Suchoptionen entsprechend zu setzen, aber bis ich die bools/ints in Strings ("true", "false") umgewandelt und auf die Strings gefiltert habe, konnte ich niemals "False" bekommen "Wahl im Filter zu arbeiten.Verwenden von Free jqGrid 4.15, kann Kontrollkästchen nicht auf falsch filtern
Die Checkboxen füllen sich erfolgreich, es ist nur die Filterung, die nicht funktioniert.
Dieser Bildschirm funktionierte gut mit einer früheren Version von jqGrid (4.5.2).
Hat jemand irgendwelche Ideen, was das Problem ist? Lassen Sie es mich wissen, wenn Sie noch etwas sehen müssen.
Meine Klasse, die JSON'd ist und an das Netz geliefert:
public class DelForDetails
{
public long ScheduleId { get; set; }
public DateTime? ShipmentDate { get; set; }
public string PurchaseOrderNumber { get; set; }
public string ProductNumber { get; set; }
public string ScheduleIdentifier { get; set; }
public Decimal? ShipmentQuantity { get; set; }
public string CommitmentLevel { get; set; }
public string ConsumerName { get; set; }
public string ShipToFacilityNumber { get; set; }
public bool Shipped { get; set; }
public bool ExportFlag { get; set; }
public bool MissingDateFlag { get; set; }
public string StatusForSchedule { get; set; }
}
Das Raster:
$('#scheduleGrid').jqGrid({
url: url,
datatype: 'json',
mtype: 'GET',
colModel: [
{ name: 'ScheduleId', label: $('#ScheduleIdHeaderText').text(), width: 100, hidden: true, editable: true },
{
name: 'ShipmentDate', label: $('#ShipmentDate').text(), width: 100, align: 'center', editable: true,
formatter: stdDateFormatter, stype: 'text'
},
{ name: 'PurchaseOrderNumber', label: $('#PurchaseOrderNumber').text(), width: 150, align: 'left', editable: true },
{ name: 'ProductNumber', label: $('#ProductNumber').text(), width: 100, align: 'left', editable: false },
{ name: 'ScheduleIdentifier', label: $('#ScheduleIdentifierHeaderText').text(), width: 150, align: 'right', hidden: false },
{
name: 'ShipmentQuantity', label: $('#ShipmentQuantity').text(), width: 80, align: 'center', hidden: false, formatter: 'number',
formatoptions: { decimalPlaces: 4, thousandsSeparator: '' }
},
{ name: 'CommitmentLevel', label: $('#CommittmentLevelHeaderText').text(), width: 80, align: 'left', hidden: false },
{ name: 'ConsumerName', label: $('#CustomerName').text(), width: 150, align: 'left', hidden: false },
{ name: 'ShipToFacilityNumber', label: $('#ShipToCode').text(), width: 100, align: 'center', hidden: false },
{
name: 'Shipped', label: $('#ShippedHeaderText').text(), width: 80, align: 'center', hidden: false, formatter: 'checkbox',
stype: 'select', searchoptions: { sopt: ['eq', 'ne'], value: ':All;true:True;false:False' }
},
{
name: 'ExportFlag', label: $('#ExportFlagHeaderText').text(), width: 80, align: 'center', hidden: false, formatter: 'checkbox',
stype: 'select', searchoptions: { sopt: ['eq', 'ne'], value: ':All;true:True;false:False' }
},
{
name: 'MissingDateFlag', label: $('#MissingDateFlagHeaderText').text(), width: 80, align: 'center', hidden: false, formatter: 'checkbox',
stype: 'select', searchoptions: { sopt: ['eq', 'ne'], value: ':All;true:True;false:False' }
}
],
jsonReader: {
repeatitems: false,
id: 'ScheduleId'
},
pager: '#schedulePager',
altRows: true,
altclass: 'harmony-schedule-grid-altrow-class',
ignoreCase: true,
multiselect: true,
cellEdit: false,
rowNum: 15,
rowList: [15, 30, 50],
loadonce: true,
loadui: 'disable',
sortable: true,
sortname: 'ShipmentDate',
sortorder: 'asc',
viewrecords: true,
gridview: true,
autoencode: true,
height: 'auto',
autowidth: true,
subGrid: true,
loadComplete: function() {
$('#LoadingPanel').hide();
$('td[aria-describedby="scheduleGrid_subgrid"]').addClass('harmony-schedule-background-color');
$('td[aria-describedby="scheduleGrid_cb"]').addClass('harmony-schedule-background-color');
},
subGridRowExpanded: function (subgrid_id, row_id) {
...
}
})
.navGrid('#schedulePager', { del: false, add: false, edit: false, search: false })
.navButtonAdd('#schedulePager', { } })
.filterToolbar({ stringResult: true, searchOnEnter: false, autosearchDelay: 1000, defaultSearch: 'cn' });
Danke Oleg. Ich hatte gestern die Drei-Status-Checkbox in der Symbolleiste ausprobiert, hatte aber immer noch das Problem. Jetzt, wo ich "sorttype: boolean" hinzugefügt habe, ist alles in Ordnung. Ich hatte das in keinem der anderen Beispiele gesehen. Vielleicht war es dort, aber ich habe es nicht gesehen. Nochmals vielen Dank. –
@GarlandDuvall: Gern geschehen! Ich empfehle Ihnen, die Demos https://jsfiddle.net/OlegKi/su7ebs65/ und https://jsfiddle.net/OlegKi/yvbt6w54/ von [README4.14.1.md] (https: // github .com/free-jqgrid/jqGrid/blob/master/README4.14.1.md # neue-main-features-implementiert-in-der-version-4141-verglichen-mit-4140) und [README4.14.0.md] (https://github.com/free-jqgrid/jqGrid/blob/master/README4.14.0.md#new-main-features-implemented-in-the-version-4140-compared-with-4136). Die Demos zeigen die Verwendung von 'template:" booleanCheckbox "', 'generateValue: true',' generateDatalist: true' und einige mehr ... – Oleg