在asp.net ascx中使用变量DataFormatString

时间:2012-04-06 20:57:07

标签: c# asp.net ascx boundfield

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

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

3 个答案:

答案 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() %>