如何根据文化在详细信息视图的模板字段中格式化日期

时间:2013-07-23 14:46:52

标签: date-format detailsview templatefield

我一直在搜索如何做到这一点 这里和那里有很多关于如何做的帖子 但是我找不到办法做我想要的事情

我在TemplateField中有这个文本框:(我不能使用BoundField)

<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("myDate", "{0:d/M/yyyy}") %>'>

这很好,但在我的网站上,我可以从英语(我们)到西班牙语(mx)来回转换,所以日期格式不同,也必须改变。

en-US:M / d / yyyy es-MX:d / M / yyyy

如何在回发中更改该格式?

我尝试在meta:ResourceKey中输入TEXT,但它显示'&lt;%#Bind(“myDate”,“{0:d / M / yyyy}”)%&gt;'而不是日期

我还尝试使用以下方法从代码隐藏中更改它:Text ='&lt;%#GetDate(Container.DataItem)%&gt;'

    public string GetDate(object dataItem)
    {
        DateTime dt;
        DataRowView _row = (DataRowView)dataItem;
        string fecha = _row["myDate"].ToString();
        if (culture == "es-MX")
            dt = DateTime.ParseExact(fecha, @"d/M/yyyy", System.Globalization.CultureInfo.InvariantCulture);
        else if(culture == "en-US")
            dt = DateTime.ParseExact(fecha, @"M/d/yyyy", System.Globalization.CultureInfo.InvariantCulture);

        return dt.ToShortDateString();
    }

它可以解决问题,但是当我尝试更新或插入时,我得到一个空值错误:/ 我使用visual studio 2012 .net 4.5和c#

感谢您的帮助

rubenc

1 个答案:

答案 0 :(得分:0)

事实证明这是一种做法

空错误来自另一个值:)

非常感谢