RelaodGrid 操作时 jqGrid PostData 中的 DateTime
DateTime in jqGrid PostData while RelaodGrid Operation
考虑 ASP.Net MVC5 项目中 JavaScript 文件中的以下虚拟代码。
var $grid = $("#grid")
var postData = $grid.jqGrid("getGridParam", "postData");
postData["xyzId"] = $("#xyzId").val();
postData["date"] = $("#date").val();
$grid.setGridParam({ postData: postData });
$grid.setGridParam({ datatype: "json", page: 1 }).trigger("reloadGrid");
下面是请求到达的Controller的ActionMethod...
public ActionResult GetXyz(int xyzId, DateTime? date)
保持日期可为空是必要的,因为它是一个可选选择。
问题:
.Net Framework 文化设置中的日期格式是 "DD/MM/YYYY",当我们发送“02/10/2016”时,它接受为 "February 10, 2016"(顺便说一句,这是错误的)但是当我们发送“16/10/ 2016" 它将其读作 null。只有当我们在 jqGrid Reload 操作中传递日期时才会发生这种情况。然而,在正常的 ajax 调用中,一切都运行良好
例如"02/10/2016" => "October 02, 2016",
和“16/10/2016”=> "October 16, 2016".
有人可以帮忙吗?
将日期捕获为字符串
public ActionResult GetXyz(int xyzId, string date="")
然后按常规格式化:
var Date= DateTime.ParseExact(date, "dd/MM/yyyy", CultureInfo.InvariantCulture);
希望这会有所帮助:)
建议仅使用与区域设置无关的格式来传输数据。这是数字、日期等的通用规则...您可以将 $("#date").val()
转换为 YYYY-MM-DD
格式(ISO 8601 日期格式)before 分配给postData.xyzId
?我认为 ISO 日期格式是 MVC 中使用的 Newtonsoft.Json
的默认格式。
通常使用 formatter: "date"
和可选的 formatoptions
以及 newformat
属性。以您在内部保存并仅传输与区域设置无关的数据的方式,但用户将看到本地特定日期(基于您在 colModel
中明确指定的 formatoptions.newformat
或从 grid.locale-XX.js
继承的隐式值).
考虑 ASP.Net MVC5 项目中 JavaScript 文件中的以下虚拟代码。
var $grid = $("#grid")
var postData = $grid.jqGrid("getGridParam", "postData");
postData["xyzId"] = $("#xyzId").val();
postData["date"] = $("#date").val();
$grid.setGridParam({ postData: postData });
$grid.setGridParam({ datatype: "json", page: 1 }).trigger("reloadGrid");
下面是请求到达的Controller的ActionMethod...
public ActionResult GetXyz(int xyzId, DateTime? date)
保持日期可为空是必要的,因为它是一个可选选择。
问题: .Net Framework 文化设置中的日期格式是 "DD/MM/YYYY",当我们发送“02/10/2016”时,它接受为 "February 10, 2016"(顺便说一句,这是错误的)但是当我们发送“16/10/ 2016" 它将其读作 null。只有当我们在 jqGrid Reload 操作中传递日期时才会发生这种情况。然而,在正常的 ajax 调用中,一切都运行良好 例如"02/10/2016" => "October 02, 2016", 和“16/10/2016”=> "October 16, 2016".
有人可以帮忙吗?
将日期捕获为字符串
public ActionResult GetXyz(int xyzId, string date="")
然后按常规格式化:
var Date= DateTime.ParseExact(date, "dd/MM/yyyy", CultureInfo.InvariantCulture);
希望这会有所帮助:)
建议仅使用与区域设置无关的格式来传输数据。这是数字、日期等的通用规则...您可以将 $("#date").val()
转换为 YYYY-MM-DD
格式(ISO 8601 日期格式)before 分配给postData.xyzId
?我认为 ISO 日期格式是 MVC 中使用的 Newtonsoft.Json
的默认格式。
通常使用 formatter: "date"
和可选的 formatoptions
以及 newformat
属性。以您在内部保存并仅传输与区域设置无关的数据的方式,但用户将看到本地特定日期(基于您在 colModel
中明确指定的 formatoptions.newformat
或从 grid.locale-XX.js
继承的隐式值).