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

ASP.NET
使用函数传递参数来执行相应的数据库操作
如何实现在窗体和窗体之间进行传递数据
ASP.NET中文显示之两种解决方法
ASP.NET、JSP及PHP之间的抉择
ASP.NET 2.0发送电子邮件中存在的问题
谈谈HtmlControl与WebControl的区别与用途
从ASP.NET 1.1升级到ASP.NET 2.0要考虑的Cookie问题
通过系统配置来提高ASP.NET应用程序的稳定性
妙用ASP2.0中的URL映射改变网址
AJAX实现web页面中级联菜单的设计
ASP.NET跨页面传值技巧总结
再议ASP.NET DataGrid控件中的“添加新行”功能
Geometry 对象浅析
重构CollapsibleSplitter
如何利用.NET Framework使用RSS feed
ASP.NET获取IP与MAC地址的方法
在ASP.NET 2.0中使用样式、主题和皮肤
ASP.NET中为GridView添加删除提示框
ASP.NET 2.0,无刷新页面新境界
看看一个.net版对话框控件

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 37 ::
收藏到网摘: 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控件。