2012-07-12 2 views
0

Неверный формат данных даты, отправленный на сервер при возникновении события строки обновления. Он отправляется на сервер как «01.01.0001 00:00:00» для всех отправленных данных. Данные о дате на клиенте перед отправкой (я видел это по предупреждению) «Сб май 05 2012 00:00:00 GMT + 0300 (GTB Daylight Time)». Любой совет?Неверный формат данных даты, отправленный на сервер при обновлении jqxgrid

enter image description here

код клиентской:

var gridSource = { 
      datatype: "json", 
      datafields: [{ name: 'KargoId' }, { name: 'Ad' }, { name: 'Soyad' }, 
      { name: 'YuklenmeTarihi', type: 'date' }, { name: 'Adet' }, { name: 'Fiyat'}], 
      url: 'BindGrid', 
      updaterow: function (rowid, rowdata) {      

       if (selectedUrunId != undefined && selectedUrunId != -1) { 
        rowdata.UrunId = selectedUrunId; 
        selectedUrunId = -1; 
       } 

       alert(rowdata.YuklenmeTarihi); 

       var data = $.param(rowdata); 
       //alert(data); 
       $.ajax({ 
        dataType: 'json', 
        url: 'UpdateEditGrid', 
        data: data, 
        success: function (data, status, xhr) { 
         gridDataAdapter.dataBind(); 

         /*if (data.Success == false) 
         alert(JSON.stringify(data));*/ 

         /*if (data.Success == true && gridDataAdapter != undefined) 
         gridDataAdapter.dataBind();*/ 
        }, 
        error: function (xhr, status, error) { 
         alert(JSON.stringify(xhr)); 
        } 
       }); 
      } 
     }; 

     var gridDataAdapter = new $.jqx.dataAdapter(gridSource, { 
      downloadComplete: function (data, status, xhr) { }, 
      loadComplete: function (data) { }, 
      loadError: function (xhr, status, error) { alert(JSON.stringify(xhr)); } 
     }); 



     // initialize jqxGrid 
     $("#jqxgrid").jqxGrid(
     { 
      width: 670, 
      source: gridDataAdapter, 
      editable: true, 
      theme: theme, 
      selectionmode: 'singlecell', 
      columns: [ 
       { text: '#', datafield: 'KargoId', width: 40 }, 
       { text: 'Ad', columntype: 'textbox', datafield: 'Ad', width: 90 }, 
       { text: 'Soyad', datafield: 'Soyad', columntype: 'textbox', width: 90 },     
       { text: 'YuklenmeTarihi', datafield: 'YuklenmeTarihi', columntype: 'datetimeinput', width: 90, cellsalign: 'right', cellsformat: 'd', 
        validation: function (cell, value) { 
         var year = value.getFullYear(); 
         if (year >= 2013) { 
          return { result: false, message: "Yükleme zamanı 1/1/2013 tarihinden önce olmalı!" }; 
         } 
         return true; 
        } 
       }, 
       { text: 'Adet', datafield: 'Adet', width: 70, cellsalign: 'right', columntype: 'numberinput', 
        validation: function (cell, value) { 
         if (value < 1 || value > 15) { 
          return { result: false, message: "Adet 1-15 aralığında olmalı!" }; 
         } 
         return true; 
        }, 
        initeditor: function (row, cellvalue, editor) { 
         editor.jqxNumberInput({ decimalDigits: 0, digits: 3 }); 
        } 
       }, 
       { text: 'Fiyat', datafield: 'Fiyat', width: 65, cellsalign: 'right', cellsformat: 'c2', columntype: 'numberinput', 
        validation: function (cell, value) { 
         if (value < 0 || value > 15) { 
          return { result: false, message: "Fiyat 0-15 aralığında olmalı!" }; 
         } 
         return true; 
        }, 
        initeditor: function (row, cellvalue, editor) { 
         editor.jqxNumberInput({ digits: 3 }); 
        } 
       } 
      ] 
     }); 
+0

Что такое поле «YuklenmeTarihi», определенное как? Дата или DateTime в C#? – Yasser

+0

Определяется как DateTime. Я только что посмотрел, в C# нет типа даты. Я ошибаюсь? – serefbilge

ответ

2

В функции updaterow, до определения данных (вар данных = $ .param (ROWDATA);) Я изменил данные о дате, как:

   var dateToChange = JSON.stringify(rowdata.YuklenmeTarihi); 
       rowdata.YuklenmeTarihi = dateToChange.replace(/"/g, ''); 

Затем он работал. replace(/"/g, '') обрезает все двойные кавычки, если вам интересно.

0

jqxGrid не отправляет данные на сервер, потому что это виджет клиентской. Виджет не обрабатывает обновления сервера. Проверьте свою функцию обновления и какие данные вы отправляете через сообщение Ajax.

+0

На фото в вопросе отображается функция serveride «UpdateEditGrid» при отладке. Он принимает объект как вход, я могу видеть все данные строки true без YuklenmeTarihi. – serefbilge

+0

Проверьте, что вы отправляете через ваш вызов ajax. I. Значение вашего параметра данных: var data = $ .param (rowdata); – turbob1234

+0

alert ($. Param (rowdata)): «... & YuklenmeTarihi = Mon + Mar + 05 + 2012 + 00% 3A00% 3A00 + GMT% 2B0200 + (GTB + Standard + Time) ...». И, предупреждение (rowdata.YuklenmeTarihi) приводит к тому, что «Сб май 05 2012 00:00:00 GMT + 0300 (GTB Daylight Time)». – serefbilge

Смежные вопросы