菜鸟涛

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: :: 管理 ::

 

双休去老婆家里,呵呵。

上个星期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 ObjectByVal 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

 

 

 

posted on 2011-04-25 08:50  菜鸟涛  阅读(378)  评论(0编辑  收藏  举报