web controls使创建forms 和html controls.的工作将会变得简单易行。例如在asp中典型的选择框/ select box里,你不得不创建一个循环以便让控制系统装入数据。但在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,使程式在简单化和统一化的过程中,相对简单。你还是可以用你过去用过的来处理一切…(除了服务器端游标)…
新闻热点
疑难解答
图片精选