是的,他的前缀,ASP的前缀。表明这是一个ASP的控件,后面的部分表示这是一个服务器端的控件,是在.NET框架下定义的。我么也可以形成我们自己的控件并且给他们一个独立的前缀,实际上我们已经为我们的站点定义了一些我们内部使用的控件。好,现在,我们看一下这个程序的运行结果,这个运行结果与上面的结果相似,所不同的是数据库访问依赖的是SQL provider,另外,增加了一个小小的定义背景色的属性。我们这个程序与上面的程序的设计基本相同,但是却很容易添加这样的属性,我们每天都用这样的方式处理成吨的表格、添加许多种其他的属性。实际上,这也是使用服务器端控件的好处,他能使我们更容易在HTML中表现方法和属性,他使得编程工作更容易,更快捷。
因此,我们看见这段代码与前一段代码的主要区别是他不需要让程序员编写遍历整个records set的WHILE循环。也不需要在HTML中的某个合适的位置显示结果。你可以很简单的生成一个表,然后告诉他:你的值来源于records set。
对的,是这样的。刚才有一件事情我跳过去了,就是你说的那件事情。我们回过头来在看一下那段代码。我们用名字调用这些data grid并且将他们捆绑到来源于data set的结果以及 data set.中的一个特定的表格,接下来的工作就可以使用这些数据了。
dgCustomers.DataBind()
上面的例子是一个将一个很简单的表格显示在屏幕上的程序,这种表现方式看起来是简单有效的,但是,对于一个比较复杂的表格,还要进行很多次的复杂运算以及显示更为花哨的字符串等要求的程序仍然可以用同样的方式遍历整个records set吗?
当然可以,这实际上是.NET服务器端控件的一大特点。我们很容易对datagrid做一些客户化的定制工作,因为,他是一个很基本的原始表格。也可以对datalist做一些客户化的工作,使他的每一行或者每一个单元对应一条记录。我们可以通过循环的方式用模版定制他的每一个重复的地方,有一种repeater数据控件,允许完全用模版定制他的每一步,因此,我们有一个头模版和一个一个尾模版分别定义了模版的起始和模版的终止。我们还有一些item 模版和一些 alternating item 模版,他们可以为我们提供更多个性化的设计。我们还有很多的好东西放到了网站ASPNextGen.com上面,在那里我们用data repeater作了许多的工作,同时也提供了更多的客户化的输出。
太好了,太好了,我可以像现出那些激动人心的功能,刚才你提到了你可以开发你自己的控件放到页面上去,如果现在的table grid控件不能够满足你的需求,你可以写一些自己的代码并将改造过的控件应用到任何你想要用到的地方。
是的,不过最有意思的是,你不仅仅可以定制你自己编写的控件,而且还可以扩展服务器端组件的功能例如我可以扩展data grid功能,以满足我自己的特殊的需求。做这些事情,我们可以使用我们完全编译的服务器端控件,也可以使用一种另外一种控件---用户控件(user control)。用户控件是一种中间件,他介于页面控件和服务器控件之间,你可以通过用户控件显示方法和属性,也可以表现更多的功能。
开发这些额外的用户控件要比单纯写一个ASP的程序复杂,但是可以获得更加强大的功能,是这样的吗?
你提了一个好问题。开发用户控件的复杂性会令你非常吃惊的。如果你创建一个ASPC类型的文件,并且写一些HTML在文件里面,你就已经拥有了一个最简单的用户控件。如果你想让一个页面内容包含在每一个页面里面,你可以将这个页面定义为一个
| 对此文章发表了评论 |

