---------------------------------------------------------------------下面我用這些模板來實(shí)現(xiàn)兩個(gè)效果:第一個(gè)效果的顯示結(jié)果:
它的后臺(tái)代碼我和大家來分析分析:首先是LayoutTemplate模板中的代碼,這可以說使我們最常用到的一個(gè)模板:
我們顯示數(shù)據(jù)的表格就放在這里面,然后顯示的那塊以前稱作頭模板的代碼頁寫在這里面。繼續(xù)分析:
我標(biāo)出來的一個(gè)重要的屬性:itemPlaceholder,它會(huì)自動(dòng)的去找ItemTemplate模板中的內(nèi)容。那這就好辦了,我們的ItemTemplate模板可以做了。注意:我們必須設(shè)itemPlaceholder這個(gè)屬性,不設(shè)置或?qū)戝e(cuò)了,那就完蛋了,除非說把這個(gè)屬性的名稱給改成自己想要的:在哪里改?在ListView屬性中的:去改,改成自己想要的,然后填寫自己改的那個(gè)名稱就可以了。

ListVIew的ItemTemPlate的做法和repeater做ItemTemPlate一樣:
不多說了,關(guān)鍵是上面注意的內(nèi)容。再就是在這里綁定數(shù)據(jù)的時(shí)候,只能用Eval去綁定(單向綁定),而不能用Bind雙向綁定。因?yàn)槲覀冊谶@里用到的是TD標(biāo)記,而不是一個(gè)控件。Bind雙向綁定的前提是必須在對一個(gè)控件的數(shù)據(jù)綁定,或放在帶有runat=server這句話的HTML標(biāo)記中才可以。而Eval就沒那么別扭了,它的靈活性更寬,可以放在控件中,也可以放在任意的HTML標(biāo)記中。不過Eval支持的是單向綁定,所謂的單向綁定就是只能從數(shù)據(jù)庫中把數(shù)據(jù)綁定顯示出來,而不能把修改完的數(shù)據(jù)送到數(shù)據(jù)庫中去。而Bind雖然要求的比較多,但是支持雙向綁定,既能夠把數(shù)據(jù)從數(shù)據(jù)庫中顯示出來,也能夠把數(shù)據(jù)送回到數(shù)據(jù)庫中去。---------------------------------------------------------------------現(xiàn)在再來說說ListView的另一個(gè)模板:GroupTemPlate 分組模板我們知道LayoutTemPlate模板放一個(gè)Table表格它可以直接包含ItemTemPlate也可以通過包含一個(gè)GroupTemPlate再來通過GroupTemPlate包含ItemTemPlate
GroupTemPlate模板的一個(gè)重要的屬性:GroupItemCount設(shè)置我這一個(gè)模板的一行顯示幾個(gè)ItemTemPlate下面我們來看一個(gè)效果:
這就是用GroupTemPlate實(shí)現(xiàn)的效果:來分析一下代碼:<LayoutTemplate> <tablewidth="100%" border="0" cellspacing="1" cellpadding="1"bgcolor="navy" color=white> <asp:PlaceHolderID="groupPlaceholder"runat="server"></asp:PlaceHolder> </table> </LayoutTemplate> <GroupTemplate> <tr> <asp:PlaceHolderID="itemPlaceholder"runat="server"></asp:PlaceHolder> </tr> </GroupTemplate> <ItemTemplate> <tdalign="center"> <img src='<%#eval_r("Pic") %>' height="50px" width="50px"/> </td> <tdalign="center"><%# eval_r("Name")%></td> <tdalign="center"><%# eval_r("Price")%></td> <tdalign="center"><%# eval_r("Brand")%></td> <tdalign="center"><%# eval_r("Oil")%></td> <tdalign="center"><%# eval_r("Powers")%></td> <tdalign="center"><%# eval_r("Exhaust")%></td> </ItemTemplate>后臺(tái)沒什么代碼,所以說ListView繼承了repeater、DataList、GridView的所有的優(yōu)點(diǎn)。---------------------------------------------------------------------用ListView實(shí)現(xiàn)分頁的效果:用到的控件DataPager必須設(shè)置兩個(gè)屬性:PageContentID 對誰分頁 PageSize 每頁顯示幾行數(shù)據(jù)
對DataPager控件外觀的顯示進(jìn)行控制:點(diǎn)擊DataPager右上角的小三角形,然后點(diǎn)擊:編輯頁導(dǎo)航字段
效果如下:
這種分頁的缺陷還是把數(shù)據(jù)從數(shù)據(jù)庫中放入到List泛型集合中,然后放到內(nèi)存中進(jìn)行分頁。缺陷和用GridView配合SqlDataSource實(shí)現(xiàn)分頁缺陷一樣。比較可行的分頁是用配合ObjectDataSource實(shí)現(xiàn)分頁或使用存儲(chǔ)過程實(shí)現(xiàn)分頁,或使用LinQ實(shí)現(xiàn)分頁。這個(gè)思想和repeater、GridView、DataList實(shí)現(xiàn)分頁一樣。---------------------------------------------------------------------
愛華網(wǎng)


