MvcContrib開源控件的表格顯示
ASP.NET MVC里顯示表格不像WebForm里那般容易。我歸納有以下三種方式:1JQERY+插件的方式。2、在頁面通過 Foreach循環(huán)的方式做顯示。3、使用開源控件,比如MvcContrib。MvcContrib是一個很出名的控件,功能上夜是足夠的強大,包括對AOP的支持等。下面僅簡單說說MvcContrib的初次使用體會。MvcContrib可以在CodePlex上下載。
網(wǎng)上也有一些大俠對MvcContrib的使用做個一些介紹,但是可能由于版本的問題,現(xiàn)在關(guān)于它的使用按照大鳥們得說法又不太一樣。所以我將自己的使用經(jīng)歷記錄下來,以供有需要的朋友們了解了解。當(dāng)然,我也畢竟剛開始用,有很多都還不知道,希望大家有機會相互借鑒一下。
首先說說我使用的MvcContrib的版本2.0.96.0。
熟悉WebForm模式或者MVC模式的朋友一定知道System.Web配置節(jié)下有個Pages節(jié)點。這個節(jié)點就是對工程下所有頁面做做的一些配置,包括明明空間等。首先是在Web.Config文件中做配置。需要引入的命名空間有如下幾個:
<add namespace="MvcContrib.UI"/> <add namespace="MvcContrib.UI.Html"/> <add namespace="MvcContrib"/> <add namespace="MvcContrib.UI.Grid"/>
在頁面上就可以通過<%Html.Grid%>使用了。Grid是個泛型方法,需要制定泛型類型,以使用此類型來做表格顯示。然后就可以直接給出數(shù)據(jù)源,然后進行輸出了。如:<% Html.Grid<Demo.Models.Student>(ViewData.Model).AutoGenerateColumns<Demo.Models.Student() %>。通過AutoGenerateColumns泛型方法就可以進行輸出。不過他輸出的是從Controller返回的整個數(shù)據(jù)表。
當(dāng)然,讓Controller層返回的數(shù)據(jù)有選擇行的輸出也是可行的。具體方式如下:
<%
Html.Grid<Demo.Models.Student>(ViewData.Model).Columns(
cols=>
{
cols.For(s=>s.Name);
cols.For(s=>s.Address,"地址");
}
);
%>
通過上面的Lambda表示式,就可以輸出制定的數(shù)據(jù)列了。當(dāng)然也可以對列做一些樣式設(shè)置。如:
<%
Html.Grid<Demo.Models.Student>(ViewData.Model).Columns(
cols=>
{
cols.For(s=>s.Name).Attributes(new Hash(@class => "grid").Add<int>("cellpadding", 2).Add<int>
("cellspacing", 0));
cols.For(s=>s.Address,"地址").DoNotEncode();
}
)
.Empty("沒有數(shù)據(jù)")
.HeaderRowAttributes(new Hash(Style=>"text-align:center;font:bold 13px/20px Verdana;"));
%>
Attributes是對列做樣式,DoNotEncode是對列顯示做的HTML編碼,Empty指明沒有數(shù)
據(jù)時顯示的信息、<br>HeaderRowAttributes設(shè)置表頭的樣式。
以前版本中用法和現(xiàn)在稍有差別:之前版本中,Columns是作為Grid泛型方法的第二個參數(shù)使
用的。在這個版本中,Gird泛型方</strong><br><strong>法只有一個參數(shù),但是有參數(shù)有兩種
類型,1:ViewData中Key的名字的字符串。2、IEnumerable<>類型的數(shù)據(jù)
源
MvcContrib的用法還不止這些。他還包括對Form表單做一
些驗證設(shè)置、做Route,還有就是擴展Controller的功能。總之,它<br>是一個很強大的開源控件。以后有些體會再做介紹。
浙公網(wǎng)安備 33010602011771號