将值从 JQuery Datepicker 传递到代码隐藏

Passing value from JQuery Datepicker to code behind

我在我的 .aspx 文件中使用 JQuery 日期选择器。

我需要在我的代码隐藏文件中使用日期值。这是我的函数,我想在我的页面上更新一个隐藏值,我可以在后面的代码中使用它。

$(function () {
    $("#datepicker").datepicker({ minDate: 0,
        onSelect: function () {
            var dueDate= document.getElementById('dueDate');
            dueDate.value = $(this).datepicker('getDate');
        }
    });
});

我要更新的隐藏值,它在同一个 .aspx 页面上:

<Input id="dueDate" type="hidden" runat="server" />

现在在我后面的代码中,我想像这样使用日期:

DateTime due= dueDate.Value;

这给了我一个错误:

Cannot implicitly convert type 'string' to 'System.DateTime'    

我在使用

时遇到同样的错误
DateTime due = Convert.ToDateTime(dueDate.Value);

在后面的代码中使用 Datepicker 的日期的正确方法是什么?

为日期选择器提供一个名称

<Input id="dueDate" name = "dueDate" type="hidden" runat="server" />

并使用下面的

String text = Page.Request.Form["dueDate"]

DateTime.Parse(...)

DateTime.ParseExact(...)

DateTime.Parse("01/01 2010");

或使用

DateTime.TryParse

如果您不确定它每次都转换成哪种类型,即。不一定是约会,所以试试这个 4 并检查

考虑在您的 .aspx 文件中添加以下代码,删除 runat 服务器:

<input type="hidden" id="dueDate" name="dueDate" value="" />

现在在 jquery 日期选择器函数中进行以下更改:

$(function () {
    $("#datepicker").datepicker({
        minDate: 0,
        dateFormat: "dd-mm-yyyy",
        onSelect: function() {
            $("#dueDate").val() = $(this).datepicker("getDate");
        }
    });
}

这样,只要您的日期选择器控件的值发生更改,dueDate 的隐藏字段值就会更新。此外,由于您的隐藏字段现在具有与之关联的名称和值属性,因此无论何时发布表单,您的代码后面都会收到其值 作为字符串

现在在您的代码隐藏文件中,按如下方式创建 DateTime 对象:

string[] dueDateSplit = Request.Form["dueDate"].Split('-');
DateTime due = new DateTime(dueDateSplit[2], dueDateSplit[1], dueDateSplit[0]);