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

1 つのオプションは、バインドされたフィールドを継承する新しいクラスDateBoundField (または任意の名前) を作成することです。コンストラクターでは、DataFormatStringを日付形式文字列に設定し、日付のどこでも DateBoundField を使用します。日付形式を変更する必要がある場合は、このクラスのコンストラクターで形式文字列を変更するだけです。

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

コードビハインドから設定できます:

((BoundField)GridView1.Columns[ColumnIndex]).DataFormatString = myFormatString;
于 2012-04-06T21:22:24.050 に答える
0

解決策を見つけたばかりだと思います。以前は使用したことがないので、試してみる必要があります:-)

説明URLがデコードされていませんasp.net

私は次のようなことを試します:

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