从日历控件中选择的日期在运行时不会在文本框中更改

时间:2014-01-23 06:24:20

标签: c# asp.net calendar asp.net-ajax datetimepicker

我必须保存从ajax日历控件中选择的日期,当我从ajax日历控件中选择日期时它会显示在文本框中,但是当我保存这个日期时,我得到的日期值不是当前选择的值,我写了这个btnsave_Click事件上的代码

我的.CS代码如下:

protected void btnsave_Click(object sender, EventArgs e)
{
    DateTime bdate = DateTime.ParseExact(txtBirthDate.Text, "dd/MM/yyyy", null);
}

用于日历控制的.aspx代码:

<td>
    <asp:TextBox ID="txtBirthDate" runat="server" ReadOnly="true"  CssClass="Txtprop" ></asp:TextBox>
    <cc1:CalendarExtender ID="calDOB" runat="server" TargetControlID="txtBirthDate" Format="dd/MM/yyyy" ></cc1:CalendarExtender>
</td>

4 个答案:

答案 0 :(得分:3)

您不应在TextBox上设置属性 ReadOnly =“true”

If TextBox's ReadOnly property is "true", postback data won't be loaded e.g it essentially means TextBox being readonly from server-side standpoint (client-side changes will be ignored). If you want TB to be readonly in the "old manner" use

TextBox1.Attributes.Add("readonly","readonly") 

因为这不会影响服务器端功能。

有关详细信息,请参阅StackoverflowAnswerTextBox Readonly  问题

答案 1 :(得分:0)

答案 2 :(得分:0)

<asp:Content>添加此行之前

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

<asp:Content之后&gt;添加

<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
    </asp:ToolkitScriptManager>

答案 3 :(得分:0)

要解决此问题,请在文本框中设置CalendarExtender的SelectedDate.Text data =更改为文本框中的任何内容,它将保持不变。设置SelectedDate可以同时设置文本框字段。

简单的修复示例

'protected void txDate_TextChanged(object sender, EventArgs e)
{ 
        txDate_CalendarExtender.SelectedDate = Convert.ToDateTime(txDate.Text);
}'