0

TelerikMVCグリッドでAjaxBindingを使用していますが、ClientTemplate内の列挙型のテキストバージョンを解決する方法がわかりません。

与えられた:

enum MyEnum { Sat, Sun, Mon, Tue, Wed, Thu, Fri };

public class MyBusinessObject{
     public int Id { get; set; }
     public MyEnum Day { get; set;
}

私からしてみれば:

@(Html.Telerik().Grid<MyBusinessObject>()

... columns.Bound(o => o.Day).ClientTemplate( "????")

たとえば、?を使用して列内の「Mon」を解決するにはどうすればよいClientTemplateですか?

4

1 に答える 1

2

ClientTemplate内に何を入力しても、正しく表示することはできません。グリッドのSelect操作を処理するアクションメソッドはJavaScriptSerializerのデフォルト設定を使用し、Enumプロパティを再設定する値は整数になるため、selectメソッドの応答を確認できます。

クライアントで整数を文字列に変換するJavaScript関数を使用してみることができます。このアプローチを採用すると、テンプレートが必要になったときにクライアントで毎回呼び出されるJavaScript関数を入力できます。

例えば:

ClientTemplate("myTransformFunction('<#= MyEnumProperty#>')")

このようにして、関数が呼び出され、列挙型の整数表現が渡されます。次に、単純なスイッチを使用して適切な文字列を返すことができます。

または、より簡単なアプローチは、ViewModelパターンを使用することです。

于 2012-04-19T18:05:01.733 に答える