30岁菜鸟涛学习VB.net 第八天
?
雙休去老婆家里,呵呵。
上個星期5正式開始用vb.net做項目,一個很小的項目,簡單來說就是一個“公司活動”的web應用。表也很少9張表。通過一天的熟悉,發(fā)現公司的框架,有一些不爽的地方,個人覺得最大的一個問題是對數據庫的操作,都要寫一個存儲過程,這樣是不是太麻煩了,還有就是操作數據庫使用是微軟的System.Data.OleDb有點不習慣,需要自己去轉換數據,仿佛回到了java原始操作JDBC的階段。 呵呵,可能用ORM多了。
?今天分到的任務就是:
?? ? 熟悉ASP.net的一個組件:ListView.呵呵,貌似沒事difficult啦。做完就去學些別的,我想改下公司現在的vb.net的框架。。
OK,來先熟悉熟悉ListView組件吧。MSDN里的解釋:ASP.NET的listview是一個數據控件,ListView 控件與 DataList 和 Repeater 控件類似,可用在任何重復結構中顯示數據。與這兩個控件不同的是,ListView 控件支持編輯、插入和刪除操作,以及排序和分頁。ListView 的分頁功能是通過新的 DataPager 控件實現的。
ListView 控件是一個可高度自定義的控件,它允許您使用模板和樣式來定義其用戶界面。象 Repeater、DataList 和 FormView 控件一樣,ListView 控件中的模板也沒有預定義為在瀏覽器中呈現特定的用戶界面。?
?具體要實現的頁面展示:
?
別看很簡單,其實是要查詢2張表,Meal Provided,和Transportation Privided是大類,后面的checkbox是小類,所以,ListView接收的數據也要經過處理。?
Ok,接下來去看看asp:List里一些屬性,先看下代碼片段:
<asp:ListView?ID="..."?runat="server"?DataSourceID="..."><LayoutTemplate>
<table?…….>
<tr?runat="server"?ID="itemPlaceholder"></tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td><%#?Eval("Name")?%></td>
</tr>
</ItemTemplate>
</asp:ListView>?
?<tr?runat="server"?ID="itemPlaceholder"></tr>是定義listview的迭代的位置
?上述代碼紅色部分是很重要滴,來講一下其作用:
DataSourceID:綁定到數據源控件,如 SqlDataSource 控件。 其實就是直接去操作數據庫。還有一個綁定數據的屬性DataSource,可以綁定到各種對象,包括 ADO.NET 數據集和數據讀取器以及內存中的結構(如集合)。
LayoutTemplate:布局模板,指定定義容器對象的根組件,如一個table、div或span組件,它們包裝ItemTemplate或GroupTemplate定義的內容。?
ItemTemplate:項目模板,控制項目內容的顯示
同時也可以定位到具體位置去循環(huán)迭代,代碼片段:
<asp:ListView?ID="ListView1"?runat="server"?DataSourceID="EntityDataSource1"?ItemContainerID=?"ItemPlaceHolder?">????????<LayoutTemplate>
??????????<table?border="2">
????????????<thead>
??????????????<tr>
????????????????<th>ProductID</th>
????????????????<th>ProductName</th>
????????????????<th>UnitPrice</th>?????
??????????????</tr>
????????????</thead>
????????????<tbody>
??????????????<asp:PlaceHolder??runat?="server"?ID="ItemPlaceHolder"></asp:PlaceHolder>
????????????</tbody>
??????????</table>
????????</LayoutTemplate>
????????<ItemTemplate>
??????????<tr>
????????????<td><%#?Eval("ProductID")%></td>
????????????<td><%#?Eval("ProductName")%></td>
????????????<td><%#?Eval("UnitPrice")%></td>
??????????</tr>
????????</ItemTemplate>
?? ? ? ?</asp:ListView>?
?<asp:PlaceHolder??runat?="server"?ID="ItemPlaceHolder"></asp:PlaceHolder>就是在指定位置使用ItemTemplate
?在來看看asp.net里listview的事件,可以在MSDN上查到http://msdn.microsoft.com/zh-cn/library/bb341994.aspx?。
?那怎么設置ListView里的數據源呢,我理解有2種形式:
1.在Page_Load,里指定個數據源。代碼片段:
頁面代碼:
?<asp:ListView?ID="InvitationLV"?runat="server"?DataSourceID=""?OnInit="InvitationLV_Init">
接著在相對應的aspx里添加init事件代碼:
???Protected?Sub?Page_Load(ByVal?sender?As?Object,?ByVal?e?As?System.EventArgs)?Handles?Me.Load
????????If?Not?Me.IsPostBack?Then???????????ListView.DataSource=....
????????End?If
????End?Sub
?2.就是在頁面上使用asp:XmlDataSource等標簽定義個datasourceId。代碼片段:
?? ?<asp:XmlDataSource?ID="XmlDataSource1"?runat="server"??? ? ? ?DataFile="~/Properties.xml"></asp:XmlDataSource>?
?
Persist
?
?
?
轉載于:https://www.cnblogs.com/jack_qin/archive/2011/04/25/2026656.html
總結
以上是生活随笔為你收集整理的30岁菜鸟涛学习VB.net 第八天的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows中架设基于Apache的s
- 下一篇: 端午假期慢生活