Asp.Netより優雅なデータバインド方法
1309 ワード
データバインドはasp.Netページ開発においてよく用いられる技術は,通常,Eveal()やDataBind()などの手法を用いてバックグラウンドオブジェクトの属性をフロントページにバインドすることであるが,これには以下の3つの明らかな欠点がある.
1)フロントの文法形式が複雑で、不便である
2)目的の文字列を自由につなぎ合わせることができません.バックグラウンドでフロントの表示に適応するために追加のプロパティを定義する必要があります.合理的ではありません.
3)スマートヒントが得られない
最近ネットで見た記事では、データバインドの方法を紹介していますが、ここでお勧めします.
まず静的クラスを宣言し、拡張メソッドを定義します.
public static class Helper
{
static object ExpHelper(Page page, Func fun)
{
var itm = page.GetDataItem(); return func((TEntity)itm);
}
public static object Eval(this Page page,Func fun)
{
return ExpHelper(page,fun);
}
}
ページ内で
注意thisは必須です.
1)フロントの文法形式が複雑で、不便である
2)目的の文字列を自由につなぎ合わせることができません.バックグラウンドでフロントの表示に適応するために追加のプロパティを定義する必要があります.合理的ではありません.
3)スマートヒントが得られない
最近ネットで見た記事では、データバインドの方法を紹介していますが、ここでお勧めします.
まず静的クラスを宣言し、拡張メソッドを定義します.
public static class Helper
{
static object ExpHelper
{
var itm = page.GetDataItem(); return func((TEntity)itm);
}
public static object Eval
{
return ExpHelper(page,fun);
}
}
ページ内で
<
%#this.Eval
<Student
>
(_ => _.Name + "(" + _.Age + ")")%>
注意thisは必須です.