Textbox Date Rendering Truncate Leading 0 part - ajaxToolkit CalendarExtender

时间:2013-06-03 12:45:47

标签: asp.net ajax ajaxcontroltoolkit

我在aspx页面中有一个文本框。文本框的值在代码隐藏中设置。当我设置断点时,文本值集是“06/03/2013”​​。但它在文本框中呈现为6/3/2013

txtDate.Text = DateTime.Now.ToString("MM/dd/yyyy");
//06/03/2013

如何将其呈现为06/03/2013

更新

注意:即使我使用CultureInfo.InvariantCulture,也不会解决此问题。

注意:如果我删除ajax calendar control,我发现问题就会消失。有没有办法用ajax控件正确处理它?<​​/ p>

ASP.NET页面

<%@ Page Title="Recovery" Language="C#" MasterPageFile="~/SimplifiedMaster.Master"
AutoEventWireup="true" CodeBehind="Recovery.aspx.cs" Inherits="MyCompany.ServicesSupportSite.UI.Recovery" %>

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

<asp:Content ID="headContent" ContentPlaceHolderID="headContentPlaceholder" runat="server">
</asp:Content>

<asp:Content ID="detailContent" ContentPlaceHolderID="detailContentPlaceholder" runat="server">
<asp:ScriptManager ID="scrRecovery" runat="server" />
<div class="recoveryValueDiv">
    <asp:TextBox ID="txtDate" runat="server" CssClass="recoveryDate" Width="100px" MaxLength="10"
        TabIndex="2"></asp:TextBox>
    <ajaxToolkit:CalendarExtender ID="CalendarExtender1" runat="server" TargetControlID="txtDate"
        CssClass="calendarStyle" />
</div>
</asp:Content>

<asp:Content ID="scriptContent" ContentPlaceHolderID="bottomScriptContentPlaceholder"
runat="server">
</asp:Content>

1 个答案:

答案 0 :(得分:3)

使用InvariantCulture来避免文化问题并强制/作为分隔符:

txtDate.Text = DateTime.Now.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture);

Demo

请注意/具有特殊含义:将我替换为当前文化的日期分隔符。

Using the InvariantCulture Property

设置Format的{​​{1}}属性:

CalendarExtender

参考文献:

  1. Calendar Extender Date Format
  2. ASP.NET AJAX Calendar Extender – Tips and Tricks