我必须保存从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>
答案 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")
因为这不会影响服务器端功能。
有关详细信息,请参阅StackoverflowAnswer或TextBox Readonly 问题
答案 1 :(得分:0)
为什么不在.cs文件中设置日期时间格式。 看这里 http://msdn.microsoft.com/en-us/library/system.windows.forms.datetimepicker.customformat%28v=vs.110%29.aspx
答案 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);
}'