2012-07-12 26 views
0

发生更新行事件时发送到服务器的错误日期数据格式。所有发送的数据都会以“01.01.0001 00:00:00”的形式发送到服务器。客户在发送之前的行日期数据是(我通过警报看到)“Sat May 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”字段定义为? C#中的日期或日期时间? – Yasser 2012-07-12 11:18:21

+0

它被定义为DateTime。我刚刚看过,C#中没有日期类型。我错了吗? – serefbilge 2012-07-12 11:31:32

回答

2

在updaterow功能,数据定义(VAR数据= $ .PARAM(rowdata);)之前,我改变了日期数据,如:

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

然后它的工作。如果你想知道,replace(/"/g, '')修剪所有双引号。

0

jqxGrid不会将任何数据发送到服务器,因为它是一个客户方小部件。服务器更新不由小部件处理。检查您的更新功能以及您通过Ajax帖子发送的数据。

+0

有问题的照片在调试时显示服务器功能“UpdateEditGrid”。它将一个对象作为输入,我可以在没有YuklenmeTarihi的情况下查看所有的行数据。 – serefbilge 2012-07-12 11:45:15

+0

检查通过ajax调用发送的数据,即数据参数的值:var data = $ .param(rowdata); – turbob1234 2012-07-12 11:47:27

+0

alert($ .param(rowdata))results like:“...&YuklenmeTarihi = Mon + Mar + 05 + 2012 + 00%3A00%3A00 + GMT%2B0200 +(GTB + Standard + Time)...”。并且,警告(rowdata.YuklenmeTarihi)结果如“Sat May 05 2012 00:00:00 GMT + 0300(GTB Daylight Time)”。 – serefbilge 2012-07-12 11:53:02

相关问题