2013-10-03 2 views
0

Je ne suis pas sûr si cela est lié à jqgrid ou est un problème webservice/postback/JSON, mais je vais essayer de donner autant d'informations que possible.jqgrid formulaire poste à webservice datetime a changé le format

Je poste le popup modal de jqgrid avec le champ DateTime.

lors de la publication du navigateur, il soumet les données suivantes (comme on le voit dans Firebug):

InStock Yes 
Name Desktop Computer 
Note note 
Ship 4 
ShipDate 05-11-2013 
id 1 
oper edit 



[WebMethod] 
[ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
public string UpdateOrder(DateTime ShipDate, string Name, Stock InStock,Ship Ship, string Note,int id) 
{ 
    return ""; 
} 

Le colModel de jqGrid ressemble ..

colModel:[ 
    {name:'Id',index:'Id', width:60, sorttype:"int", editable: false}, 
    {name:'ShipDate',index:'ShipDate',width:90, editable:true, sorttype:"date",unformat: pickDate}, 
    {name:'Name',index:'Name', width:150,editable: true,editoptions:{size:"20",maxlength:"30"}}, 
    {name:'InStock',index:'InStock', width:70, editable: true,edittype:"checkbox",editoptions: {value:"Yes:No"},unformat: aceSwitch}, 
    {name:'Ship',index:'Ship', width:90, editable: true,edittype:"select",editoptions:{value:"4:FedEx;1:InTime;2:TNT;3:ARAMEX"}}, 
    {name:'Note',index:'Note', width:150, sortable:false,editable: true,edittype:"textarea", editoptions:{rows:"2",cols:"10"}} 
], 

et pickDate ressemble

function pickDate(cellvalue, options, cell) { 
    setTimeout(function(){ 
     $(cell) .find('input[type=text]') 
       .datepicker({format:'dd-mm-yyyy' , autoclose:true}); 
    }, 0); 
} 

également le style de formulaire d'édition est la suivante (lorsque le formulaire d'édition apparaît)

function style_edit_form(form) { 
    //enable datepicker on "sdate" field and switches for "stock" field 
    form.find('input[name=ShipDate]').datepicker({format:'dd-mm-yyyy' , autoclose:true}) 
     .end().find('input[name=stock]') 
       .addClass('ace ace-switch ace-switch-5').wrap('<label class="inline" />').after('<span class="lbl"></span>'); 

Toutefois, lorsque les données sont reçues au niveau du serveur (service asmx), le datetime (ShipDate) passe à "05/11/2013 00:00:00" alors que le ShipDate envoyé par le client est 05 -11-2013 (ce qui est correct). Une idée de ce qui se passe?

+0

Et votre question est? – Mark

+0

excuses à ce sujet, la question est en gras. – daehaai

Répondre

1

Pour datepicker vous utilisez 'dd-mm-aaaa format', mais sur le côté serveur, il conversion à un format différent selon la culture installée, par exemple 'mm/jj/aaaa hh: mm: ss' avec le temps. Si vous avez besoin du même format que ce que vous transmettez jquery, vous devez analyser la date du côté serveur dans un format spécifié.

DateTime time = Convert.ToDateTime("11/05/2013 00:00:00"); 
Console.WriteLine(time); //Default format 
string format = "d/M/yyyy"; // Use this format 
Console.WriteLine(time.ToString(format)); 
+0

Je comprends en quelque sorte ce que vous dites ici. Pourriez-vous s'il vous plaît mettre un exemple? – daehaai

+0

J'ai placé à la fois le côté serveur et le code côté client et serveur. Je ne peux pas penser à autre chose à placer ici. Faites-moi savoir si vous cherchez quelque chose de spécifique. – daehaai

+0

@ user25018 J'ai mis à jour ma réponse avec l'exemple de code pour convertir le format de date désiré que vous avez mentionné. –