所以我有一些看起来像这样的代码:
<asp:BoundField DataField="CreatedOn" HeaderText="Created on"
SortExpression="CreatedOn" DataFormatString="{0:MMM dd yyyy hh:mm:ss tt}">
这是我想要的。但是,我想在我的程序中的任何地方重用日期格式。因此,我想使用变量而不是上面使用的字符串。类似的东西:
<asp:BoundField DataField="CreatedOn" HeaderText="Created on"
SortExpression="CreatedOn" DataFormatString="<%=myFormatString%>">
但这完全不起作用。它按字面打印出来:
<%=myFormatString%>
我试过Bind,我试过Eval,似乎没什么用。在我看来,这应该是非常简单的,甚至是必要的。我是世界上唯一一个不止一次使用DataFormatString的人吗?这是可能的还是我是一个梦想家?
答案 0 :(得分:3)
你可以从codebehind设置它:
((BoundField)GridView1.Columns[ColumnIndex]).DataFormatString = myFormatString;
答案 1 :(得分:3)
一个选项是创建一个新类 DateBoundField (或任何你想要命名的),它继承绑定字段。在构造函数中,您只需将 DataFormatString 设置为日期格式字符串,然后在您的日期随处使用DateBoundField,当您需要更改日期格式时,只需更改此类构造函数中的格式字符串
public class DateBoundField : BoundField
{
public DateBoundField()
{
DataFormatString = "{0:yyyy-MMM-dd}";
}
}
答案 2 :(得分:0)
我想我刚刚找到了解决方案,我之前从未使用它,所以你需要尝试: - )
Description url not being decoded asp.net
我会尝试类似的事情:
<%# myFormatString() %>