モデルインスタンスを設定し、このモデルのプロパティをバインドしてhtmlをレンダリングするためのHtmlHelper拡張メソッドを作成したいと考えています。モデルのプロパティをバインドするHtmlHelper。 Fluent Interface
これはTelerikグリッドに近い類似のパターンに従います。
次の例では、Model
をグリッドのDataContextとして設定しています。 次に、いくつかの列を宣言します。 Foreach列では、モデルに関してはIEnumerable
のプロパティをバインドします。したがって、グリッドが行をレンダリングするとき、それぞれのプロパティは、その行のモデルのインスタンスからバインドされます。
@(Html.Telerik().Grid(Model)
.Name("Grid")
.Columns(columns =>
{
columns.Bound(o => o.OrderID).Width(100);
columns.Bound(o => o.ContactName).Width(200);
columns.Bound(o => o.ShipAddress);
columns.Bound(o => o.OrderDate).Format("{0:MM/dd/yyyy}").Width(120);
})
.Scrollable(scrolling => scrolling.Enabled((bool)ViewData["scrolling"]))
.Sortable(sorting => sorting.Enabled((bool)ViewData["sorting"]))
)
基本的には、Bound
メソッドの実装方法に関するアイデアがあります。私のシナリオでは、モデルもIEnumerable
になります。だから、MyObj
は次のようになり、私は引数の便宜上List<MyObj>
あるモデルを持って言うことができます:
public class MyObj
{
public bool IsRegistered { get; set;}
public string Name { get; set; }
}
私は私のリストをレンダリングして見えるのHtmlHelperを呼び出すビューで終わるしたいと思います
@(Html.MyHelpers().MyList(Model)
.ControlOne.Bound(o => o.IsRegistered)
.ControlTwo.Bound(o => o.Name)
)
私はまだたくさん試していないし、正直言ってこれを実装する方法はわかりません。だから私は進行中の作業であるので、私は更新を掲載する予定です。しかし、アイデアや提案があれば、私はそれを感謝します。私はグリッドを使うことができると知っていますが、このヘルパーは軽量になります。私はあまり機能を必要とせず、この目的のためにtelerikグリッドをドラッグしたくありません。
ありがとうございます!
これは、私がこの問題を解決するために必要な例です。ありがとう! +1 – Gabe