jQuery UI Widgets › Forums › Grid › datafields "date" handling invalid values
Tagged: angular grid, date, grid, javascript grid, jquery grid
This topic contains 2 replies, has 2 voices, and was last updated by pandaNine 7 years ago.
-
Author
-
Hi
jQuery: 1.11.1
Device: Desktop – win 10
jQWidgets: v4.1.0
Browser: FirefoxI read datetime values from a mysql db. Most of the values (0000-00-00 00:00:00) are invalid for the datafields type “date”. Type “date” changes the invalid values to todays date.
So how do I change the invalid value for type = “date”?The Code:
$(document).ready(function () { // prepare the data var data = new Array(); var ID = ["<div class='updateAdresse' onclick='bearbeitenClick(123)'>bearbeiten</div>", "<div class='updateAdresse' onclick='bearbeitenClick(321)'>bearbeiten</div>", "<div class='updateAdresse' onclick='bearbeitenClick(412)'>bearbeiten</div>", ]; var Anrede = ["", "Lieber Ernst", "Lieber Roman", ]; var Nachname = ["Salamand", "Test", "Keller", ]; var Vorname = ["Emil", "Ernst", "Roman", ]; var Strasse = ["", "", "testerstrasse 4 ", ]; var PLZ = ["8867", "", "5623", ]; var Ort = ["Niederurnen", "", "Boswil", ]; var TelefonP = ["", "", "012 234 45 65", ]; var TelefonG = ["", "098 774 32 12", "", ]; var TelefonH = ["", "", "", ]; var MailP = ["", "test@tester.com", "", ]; var MailG = ["", "", "", ; var GeburtAm = ["0000-00-00 00:00:00", "1959-03-20 00:00:00", "0000-00-00 00:00:00", ]; for (var i = 0; i < Anrede.length; i++) { var row = {}; row['ID'] = ID[i]; row['Anrede'] = Anrede[i]; row['Nachname'] = Nachname[i]; row['Vorname'] = Vorname[i]; row['Strasse'] = Strasse[i]; row['PLZ'] = PLZ[i]; row['Ort'] = Ort[i]; row['TelefonP'] = TelefonP[i]; row['TelefonG'] = TelefonG[i]; row['TelefonH'] = TelefonH[i]; row['MailP'] = MailP[i]; row['MailG'] = MailG[i]; row['GeburtAm'] = GeburtAm[i]; data[i] = row; } var source = { localdata: data, datatype: "array", datafields: [ {name: 'ID', type: 'date', format:'d.M.yyyy'}, {name: 'Anrede', type: 'date', format:'d.M.yyyy'}, {name: 'Nachname', type: 'date', format:'d.M.yyyy'}, {name: 'Vorname', type: 'date', format:'d.M.yyyy'}, {name: 'Strasse', type: 'date', format:'d.M.yyyy'}, {name: 'PLZ', type: 'date', format:'d.M.yyyy'}, {name: 'Ort', type: 'date', format:'d.M.yyyy'}, {name: 'TelefonP', type: 'date', format:'d.M.yyyy'}, {name: 'TelefonG', type: 'date', format:'d.M.yyyy'}, {name: 'TelefonH', type: 'date', format:'d.M.yyyy'}, {name: 'MailP', type: 'date', format:'d.M.yyyy'}, {name: 'MailG', type: 'date', format:'d.M.yyyy'}, {name: 'GeburtAm', type: 'date', format:'d.M.yyyy'}, ], id: "ID" }; var dataAdapter = new $.jqx.dataAdapter(source, { loadComplete: function (data) { }, loadError: function (xhr, status, error) { } }); $('#jqxgrid').jqxGrid( { source: dataAdapter, columns: [ {text: 'Anrede', datafield: 'Anrede'}, {text: 'Nachname', datafield: 'Nachname'}, {text: 'Vorname', datafield: 'Vorname'}, {text: 'Strasse', datafield: 'Strasse'}, {text: 'PLZ', datafield: 'PLZ'}, {text: 'Ort', datafield: 'Ort'}, {text: 'Tel Privat', datafield: 'TelefonP'}, {text: 'Tel Geschäft', datafield: 'TelefonG'}, {text: 'Handy', datafield: 'TelefonH'}, {text: 'Mail Privat', datafield: 'MailP'}, {text: 'Mail Geschäft', datafield: 'MailG'}, {text: 'Geburtsdatum', datafield: 'GeburtAm', cellsformat: 'd.M.yyyy'}, {text: 'Bearbeiten', datafield: 'ID', exportable:false}, ], width: '100%', height: '100%', sortable: true, columnsresize: true, columnsmenu: false }); var localizationobj = {}; localizationobj.emptydatastring = 'Es sind keine Einträge vorhanden'; $("#jqxgrid").jqxGrid('localizestrings', localizationobj); $('#jqxgrid').on('rowdoubleclick', function (event) { var args = event.args; var row = args.rowindex; var id = $('#jqxgrid').jqxGrid('getrowid', row); var number = id.replace( /\D+/g, ''); bearbeitenClick(number); }); });
Thanks
pandaNine
Hi pandaNine,
To avoid this behavior, please, try to storeyour zero values in the database, like valid date strings.
Best Regards,
Ivailo IvanovjQWidgets Team
http://www.jqwidgets.comThanks for your answer ivaiko 😀
I’ll try to change the invalid values to 1900-01-01 00:00:00. Afterwards a datarenderer would do the job.
pandaNine
-
AuthorPosts
You must be logged in to reply to this topic.