|
里,你不得不创建一个循环以便让控制系统装入数据。但在ASP.NET里,你将会拥有一个data-bound,这意味着它会与数据源连接,并会自动装入数据。 这些功能听起来简直是妙不可言,但是让我们细细的来检验一下。通过传统的ASP和ADO,你能够选择在哪里放置数据库游标(服务器一边或是用户一边),至于其它的,是依靠你想要创建的性能和功能类型来做决定。但是在ASP+里,你不再有选择。因为在web controls和服务器之间的 链接,迫使你不得不将所有的事物都放置在客户方。对于客户和服务器来说,不啻于一个性能中心,因为它必须将所有的数据存储在本地内存里。 Web controls 也在严格的XML 术语中引进了新的语法。因此,你会不再有比较松散的代码编辑过程,你必须关闭所有的标记符,使用定义等等。当然,大多数人对于适应这个功能会感到非常痛苦,但是严格的的代码编辑过程通常意味着更少的错误。 另一方面关于web forms 缺陷在于,要想使用web form的大部分功能,你必须使用forms 的POST 方法;例如,state 管理。当你使用GET方法时,所有的all best 会被关闭掉,你就不能使用相应的功能。这个限制实在太没必要了。 ASP.net Server Controls 许多系统过去的组成部分现在成为ASP.NET Server Controls。例如:ad rotator已升级,并开始用XML来存储它的信息,但不仅仅于此。这儿有一整套控制系统,它可以做任何事情,从代为管理你的表单状态到显示日历、桌面。事实上,几乎每HTML元素都有ASP.NET Server Controls,通过ASP.NET Server Control,可以与HTML元素程式化的相互影响。例如,你不再需要为了维持一个在LISTBOX里选定的 OPTION而大走弯路。你只需指示LISTBOX 在服务器里运作并代你进行管理就可以了。更为方便的是,你只需设定好程序,LISTBOX就会按指令依次显示选定的项目。
也许在这个新的 controls中最有趣的莫过于 DataGrid。Datagrid是一个多列的数据绑定网格,通过它你可以轻而易举的将数据置于其中。它同时提供分页、排序等所有你所期望的功能。我们看一个Datagrid的例子. 注:我们将在另外的文章里介绍Datagrid的属性和方法。 $#@60;%@ Page language=C# src=DataGrid.cs inherits=Sample ataGridPage%$#@62; ... $#@60;ASP:DataGrid runat=server id=titlesGrid$#@62; $#@60;/asp:DataGrid$#@62; 上面的 .aspx 文件显示在不设置 DataGrid 控件任何属性的情况下对其进行声明。 DataGrid.cs: namespace Samples { ... public class DataGridPage : Page { protected DataGrid titlesGrid; public ICollection GetTitlesList() { // 从在应用程序状态中高速缓存的 DataSet 中检索标题列表。 DataSet titlesDataSet = (DataSet)Application[TitlesDataSet]; if (titlesDataSet != null) { return titlesDataSet.Tables[Title].DefaultView; } else { return null; } } private void LoadTitlesGrid() { // 从数据库中检索数据 ICollection titlesList = GetTitlesList(); // 设置控件的数据源 titlesGrid.DataSource = titlesList; // 并使它用此数据源构建其项目 titlesGrid.DataBind(); } protected override void OnLoad(EventArgs e) { base.OnLoad(e); if (!IsPostBack) { // 首次请求此页 LoadTitlesGrid(); } } } } 记录丢失,对于程序员来说是一个非常严重的事情。在新的系统中, 中心对象是Dataset。它与recordset相类似,是数据内在存储记忆的副本。Dataset对于您的开发来说是中心所在,但是现在,我只能说它只是相近与XML,使程式在简单化和统一化
ASP.NET的Web controls |