当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 从ASP迁移至ASP+ --将HTML表格转换为ASP+数据列表

ASP.NET
赫赫大名的A*寻路算法(vb.net版本)
asp.net(c#)下Jmai去说明 使用与下载
[原创]完美解决Could not load file or assembly ''AjaxPro.2'' or one of its dependencies. 拒绝访问。
asp.net下gridview 批量删除的实现方法
用CSS实现图片倾斜 只支持IE
.net get set用法小结
vs 不显示行号的操作方法
ASP.NET页面进行GZIP压缩优化的几款压缩模块的使用简介及应用测试!(附源码)
ASP.Net不执行问题一解
asp.net 无限分类
让VS2008对JQuery语法的智能感知更完美一点
扩展方法ToJSON() and ParseJSON()
asp.net下PageMethods使用技巧
Linq to SQL Delete时遇到问题的解决方法
实现ASP.NET多文件上传程序代码
ASP.NET AJAX 1.0 RC开发10分钟图解
asp.net get set用法
ASP.NET下使用WScript.Shell执行命令
asp.net2.0实现邮件发送(测试成功)
Asp.net 无限级分类实例代码

ASP.NET 中的 从ASP迁移至ASP+ --将HTML表格转换为ASP+数据列表


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 55 ::
收藏到网摘: n/a

将HTML表格转换为ASP+数据列表(DataList)
作 者 : 雨晨


   我们从数据存储中取回的数据将被用来显示eVille提供的下两节课程。基于页面设计方面的考虑,标准的表格在这里并不合适。数据需要以一种自定义的格式展示,用来显示课程名,课程描述,以及报名的链接(该链接通过QueryString传递Session_ID)。下面是原始的ASP页面利用ADO记录集创建的一个循环,该循环为每条记录创建一个新的行。

   < table width="100%" border="0">

   < tr>

   < td class="headerRow">Upcoming Events< /td>

   < /tr>

   < %Do While Not rsUpcoming.EOF%>

   < tr>

   < td>< p>< b>< %=rsUpcoming("Title")%>< /b>< br>

   < %=rsUpcoming("Description")%>< /p>

   < p>< a href="enroll.asp?SessionID=< %=rsUpcoming("Session_ID")%>">

   Enroll Now!< /a>< /p>< br>

   < /td>

   < /tr>

   < %

   rsUpcoming.MoveNext

   Loop

   %>

   < /table>

   在ASP+中,我们利用新的服务器控件,DataList。ASP+ DataList是用来创建自定义页面布局的新控件中的一种,这些布局都是基于表格的。DataList通过你赋予的属性来创建表格的行与列,同时使用Template来控制布局。在下面的例子中,我们使用ItemTemplate来格式化每行的布局。该templates控制每个显示出来的单元的布局(一个记录对一个单元):

   < tr>

   < td class="headerRow">Upcoming Events< /td>

   < /tr>

   < /table>

   < asp:DataList id="dlUpcoming" width="100%" runat="server">

   < template name = "ItemTemplate">

   < p>< b>< %# Container.DataItem("Title") %>< /b>< br/>

   < %# Container.DataItem("Description") %>< /p>

   < p>< a href="enroll.asp?SessionID=< %# Container.DataItem("Session_ID") %>">

   Enroll Now!< /a>< /p>< br/>

   < /template>

   < /asp:DataList>

   缺省情况下,DataList创建一个单列的表格。通过改变它的一系列属性可使其创建多个列:

   < asp:DataList id="dlUpcoming" width="100%"

   RepeatDirection="Horizontal"

   RepeatColumns="2"

   runat="server">

   其他的数据显示控件包括DataGrid(标准表格布局)和Repeater(完全自定义布局)。

   如果我们现在来看页面,表中的任何内容都不会显示出来。这是因为我们虽然设计了布局,却没提供数据。我们必须显式地将数据(DataSet中的一个DataView)绑定到ASP+ DataList控件。通过设置DataSource属性,调用将要显示数据的控件的DataBind()方法,我们可以做到这一点。

   由于ASP+ web应用程序在运行前经过编译,我们毋须遵循页面上的线性处理流程。即使DataList的ID直到页面代码的中部才被确定(当我们实际将控件放在页面上时),我们还是可以在页面起始部分的Page_Load事件中指定控件。这样一来,当页面装载时数据就已经被绑定到控件。

   < script language="vb" runat=server>

   Sub Page_Load(Source As Object, E As EventArgs)

   . . .

   cmdUpcoming.FillDataSet(dsUpcoming, "Upcoming")

   dlUpcoming.DataSource = dsUpcoming.Tables("Upcoming").DefaultView

   dlUpcoming.DataBind()

   End Sub

   < /script>

   使用诸如DataList这样的ASP+服务器控件,使我们能有计划性地访问该控件。这样我们便可以针对它的属性以及方法来编写代码。在第一行中,我们将DataList的DataSource属性设为DataSet中的DataView(一个单独的数据表)。我们特别将它设为DataSet的表集中的Upcoming表的缺省视图(view)。设置了DataSource后,我们就调用DataList控件的DataBind()方法,将SQL的查询结果绑定到DataList控件。