2012-04-06 6 views
2

で変数DataFormatStringを使用してください。しかし、プログラムのどこにでも日付形式を再利用したい。したがって、私は上記の文字列の代わりに変数を使いたい。何かのように:は、だから私はこのようになりますいくつかのコードを持っているのasp.net ASCX

<asp:BoundField DataField="CreatedOn" HeaderText="Created on" 
SortExpression="CreatedOn" DataFormatString="<%=myFormatString%>"> 

しかし、これは完全に動作しません。これは、文字通り出力します:

<%=myFormatString%> 

私は何も動いていないようにみえ、評価を試みたが、バインドを試してみました。これは本当にシンプルで、必要でさえあるはずです。私はDataFormatStringを複数回使用したいと思う世界で唯一の人ですか?これが可能か、私は夢見る人ですか?

+0

"myFormatString"関数/プロパティを投稿してください。 – Philipp

+0

それはちょうど文字列です: 'public static string myFormatString =" {0:MMM dd yyyy} "' エラーがその側にあった場合、私は何かを教えてくれます。テキストは文字通り。 – Andrew

+0

私はまた、単純に文字列を返すgetプロパティを試しました。 – Andrew

答えて

2

をコードビハインドから:

((BoundField)GridView1.Columns[ColumnIndex]).DataFormatString = myFormatString; 
+0

これは実際にDataBoundメソッドに入れると機能します。誰も何もできないなら、私はそれを答えとして受け入れます。私は一定の文字列を持っているので、それはちょうどのように思えます、私は<%= %>でそれを差し込むことができるはずです。その答えが「明らかな理由がないために単純に行うことはできません」とすれば、それはうんざりします。 – Andrew

+0

それは明らかな理由がないので、単純にはできないようです。 Telerik.Web.UI.GridBoundColumnでこれを行う必要があり、その解決策もこれとは異なることに注意したいと思います。そのソリューションのために、私はコントロールのPreRenderメソッドでそれを実行し、blah.MasterTableView.Rebind()メソッドをコールしなければなりませんでした( "Declarative Columns" [here](http://www.telerik.com/help/aspnet -ajax/grid-using-columns.html) – Andrew

0

私はちょうど解決策を見つけたので、あなたは

Description url not being decoded asp.net

:-)試してみる必要がある前に、私はそれを使ったことがない私のような何かしようと思います:あなたが設定することができ

<%# myFormatString() %> 
+0

ネガティブ。文字通りそのまま印刷されます。 – Andrew

+0

あなたは別のオブジェクトでプロパティを試しましたか? 私は推測しているが、サーバ側で検証されたオブジェクトがインラインaspコードを受け入れないことを確認しています。私はすでにrunat = "server"でaspx/.netと同様の問題を抱えていました。 – Philipp

+0

これは期待通りに動作し、文字列を正しく出力します。私はこれが私のためにものが簡単であることを望んでいないちょうどいくつかのasp.netの事だと思います... – Andrew

2

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

public class DateBoundField : BoundField 
    { 
     public DateBoundField() 
     { 
      DataFormatString = "{0:yyyy-MMM-dd}"; 
     } 
    } 
関連する問題