ASP.NET 无法从代码隐藏中为日期选择器设置值

ASP.NET Can't set value to datepicker from code behind

我有一个日期选择器字段

$(function () {
        $("#dateTextBox").datepicker({
            changeMonth: true,
            changeYear: true
        });

        $("#dateTextBox").datepicker("option", "dateFormat", "dd/mm/yy");
});

在代码隐藏中,单击按钮时,我试图将值设置为日期选择器字段:

dateTextBox.Value = date.ToString("dd/MM/yyyy");

但是回发后,文本框是空的...

为此,您需要使用隐藏字段从客户端读取详细信息。这个隐藏字段值可以在服务器端设置。

例如:

在页面上创建隐藏字段

<asp:HiddenField id="hdnDate" runat="server" />

在隐藏字段中设置日期字符串:

protected void button_Clicked (...)
{
     DateTime dt = DateTime.Now;
     hdnDate.Value = dt.Year.ToString() + "," + (dt.Month - 1 ).ToString() + "," + dt.Day.ToString();
}

现在,在 jquery 事件的 document.ready 上,执行此操作

$(document).ready(function() {
 $("#dateTextBox").datepicker({
        changeMonth: true,
        changeYear: true
    });

  dtString = $("#<%=hdnDate.ClientID%>").val();
  dtString = dtString.split(',');
  var defaultDate = new Date(dtString[0], dtString[1], dtString[2]);
  $("#dateTextBox").datepicker("setDate",defaultDate);

});

试试这个:

dateTextBox.Value = DateTime.Now.ToString("yyyy-MM-dd");