4

所以我有一些看起来像这样的代码:

<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 的人吗?这是可能的还是我是一个梦想家?

4

3 回答 3

3

您可以从代码隐藏设置它:

((BoundField)GridView1.Columns[ColumnIndex]).DataFormatString = myFormatString;
于 2012-04-06T21:22:24.050 回答
3

一种选择是创建一个新类DateBoundField(或任何您想命名的名称),它继承绑定字段。在构造函数中,您只需将DataFormatString设置为日期格式字符串,然后在任何地方使用 DateBoundField 作为日期,当您需要更改日期格式时,只需在此类的构造函数中更改格式字符串。

    public class DateBoundField : BoundField
    {
        public DateBoundField()
        {
             DataFormatString = "{0:yyyy-MMM-dd}";
        }
    }
于 2013-07-11T19:42:21.277 回答
0

我想我刚刚找到了解决方案,我以前从未使用过它,所以你需要尝试:-)

说明 url 未解码 asp.net

我会尝试类似的东西:

<%# myFormatString() %>
于 2012-04-06T21:02:44.237 回答