jQuery UI Widgets Forums Grid datafields "date" handling invalid values

This topic contains 2 replies, has 2 voices, and was last updated by  pandaNine 7 years ago.

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author

  • pandaNine
    Participant

    Hi

    jQuery: 1.11.1
    Device: Desktop – win 10
    jQWidgets: v4.1.0
    Browser: Firefox

    I 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


    ivailo
    Participant

    Hi pandaNine,

    To avoid this behavior, please, try to storeyour zero values in the database, like valid date strings.

    Best Regards,
    Ivailo Ivanov

    jQWidgets Team
    http://www.jqwidgets.com


    pandaNine
    Participant

    Thanks 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

Viewing 3 posts - 1 through 3 (of 3 total)

You must be logged in to reply to this topic.