DatePicker 后 TextBox.Text 的错误值

Wrong value with TextBox.Text after DatePicker

我正在使用 asp.net 网络表单,以便使用 ReportViewer 进行报告。

在一份报告中,我想允许用户 select 约会。

为此,我搜索上个月的第一天和最后一天,并从 Page_Load :

中设置它们
this.TextBox1.Text = FirstDayOfMonthDateTime.ToString(dd/MM/yyyy);
this.TextBox2.Text = LastDayOfPreviousMonthDateTime.ToString(dd/MM/yyyy);

至此,一切正常,datepicker运行就上UI:

    <asp:TextBox ID="TextBox1" class="datePicker" runat="server"></asp:TextBox>
            <asp:TextBox ID="TextBox2" class="datePicker" runat="server"></asp:TextBox>
... 
// put all datepickers
        $(".datePicker").datepicker({
            numberOfMonths: 1,
            dateFormat: 'dd/mm/yy'
        });

当我使用日期选择器更改此标签的值时,UI 没问题,但是当用户单击按钮时,后面的代码没有给我合适的日期:

protected void Generate_Click(object sender, EventArgs e)
        {
            string text = this.TextBox1.Text;
        }

它给出了我在 Page_Load 中设置的日期,而不是我用 datepicker 设置的文本!

如何以及为什么? :-)

回传的问题。您必须在 Page_Load 方法

中编写 postBock 条件
if(!IsPostback)
{
   this.TextBox1.Text = FirstDayOfMonthDateTime.ToString(dd/MM/yyyy);
   this.TextBox2.Text = LastDayOfPreviousMonthDateTime.ToString(dd/MM/yyyy);
}

这是关于回发的 link 属性: https://msdn.microsoft.com/en-us/library/system.web.ui.page.ispostback%28v=vs.110%29.aspx