我一直在搜索如何做到这一点这里和那里有很多关于如何做到这一点的帖子但是我找不到一种方法来做我想做的事
我在 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 指令,但它显示 '<%# Bind("myDate", "{0:d/M/yyyy}") %>' 而不是日期
我还尝试使用以下代码从代码隐藏中更改它: Text='<%# GetDate(Container.DataItem) %>'
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#
谢谢你的帮助
鲁本克