您的位置:首页 > 编程语言 > VB

30岁菜鸟涛学习VB.net 第八天

2011-04-25 08:50 197 查看
双休去老婆家里,呵呵。

上个星期5正式开始用vb.net做项目,一个很小的项目,简单来说就是一个“公司活动”的web应用。表也很少9张表。通过一天的熟悉,发现公司的框架,有一些不爽的地方,个人觉得最大的一个问题是对数据库的操作,都要写一个存储过程,这样是不是太麻烦了,还有就是操作数据库使用是微软的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:项目模板,控制项目内容的显示

同时也可以定位到具体位置去循环迭代,代码片段:

<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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: