帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统
栏 目:
 
您的位置:首页 > 技术文档 > ASP编程
asp+与asp的区别(5)
作者: 发布时间:2005-03-12 来源:
服务器端的控制如何工作?
作 者 : 青苹果电脑工作室


这是如何实现的?关键是runat="server" 属性。要了解这是如何进行的,看看浏览器内页面
的源代码。是这样的:

〈 HTML 〉
〈 BODY 〉
You selected 'Windows 98' for machine 'tizzy'.
〈 FORM name="ctrl0" method="post" action="pageone.aspx" id="ctrl0" 〉
〈 INPUT type="hidden" name="__VIEWSTATE" value="a0z1741688109__x" 〉
Machine Name:
〈 INPUT type="text" id="txtName" name="txtName" value="tizzy" 〉
〈 P / 〉
Operating System:
〈 SELECT id="selOpSys" size="1" name="selOpSys" 〉
〈 OPTION value="Windows 95" 〉Windows 95〈 /OPTION 〉
〈 OPTION selected value="Windows 98" 〉Windows 98〈 /OPTION 〉
〈 OPTION value="Windows NT4" 〉Windows NT4〈 /OPTION 〉
〈 OPTION value="Windows 2000" 〉Windows 2000〈 /OPTION 〉
〈 /SELECT 〉
〈 P / 〉
〈 INPUT type="submit" value="Submit" 〉
〈 /FORM 〉
〈 /BODY 〉
〈 /HTML 〉

用这个ASP+ 代码创建 〈 FORM 〉 :

〈 FORM runat="server" 〉
...
〈 /FORM 〉

当页面被ASP+执行时,到浏览器的输出是:

〈 FORM name="ctrl0" method="post" action="pageone.aspx" id="ctrl0" 〉
...
〈 /FORM 〉

可以看到action 和 method 属性是ASP+自动创建的,所以表单中控制的值就会被邮递回同一页。
ASP+还为表单增加唯一的id 和 name 属性,因为我们没有提供。但是如果你确实指定了这些属性,
就会使用你所指定的值。

如果包含了method="GET" 属性,表单的内容就作为查询字符串的一部分被发送给服务器,同
以前版本的ASP一样,自动状态管理就不再有效。

在表单内,用这样的ASP+ 代码创建文本框:

〈 INPUT type="text" id="txtName" runat="server" 〉

浏览器的结果是这样的:

〈 INPUT type="text" id="txtName" name="txtName" value="tizzy" 〉

可以看到当表单被提交时,ASP+以控制中的文本值自动增加了value 属性。它还保留了我们
提供的name 属性,还以同样的值增加了一个id属性。

我们为〈 SELECT 〉 列表写了以下代码:

〈 SELECT id="selOpSys" size="1" runat="server" 〉
〈 OPTION 〉Windows 95〈 /OPTION 〉
〈 OPTION 〉Windows 98〈 /OPTION 〉
〈 OPTION 〉Windows NT4〈 /OPTION 〉
〈 OPTION 〉Windows 2000〈 /OPTION 〉
〈 /SELECT 〉

ASP+ 被迫输出这个HTML,适当的〈 OPTION 〉元素 有一个selected属性:

〈 SELECT name="selOpSys" id="selOpSys" size="1" 〉
〈 OPTION value="Windows 95" 〉Windows 95〈 /OPTION 〉
〈 OPTION selected value="Windows 98" 〉Windows 98〈 /OPTION 〉
〈 OPTION value="Windows NT4" 〉Windows NT4〈 /OPTION 〉
〈 OPTION value="Windows 2000" 〉Windows 2000〈 /OPTION 〉
〈 /SELECT 〉

同样创建一个唯一的id 属性,并自动给〈 OPTION 〉元素增加相匹配的 value 属性。(如果我们
在页面中提供了自己的value属性,将被保留)。

所以你可以看到,并没有使用什么神奇的手段。都是标准的HTML,没有客户机侧脚本库,也
没有ActiveX 控制或 Java applets。同样重要的一点是在服务器上根本没有存储任何状态。相反,
只是用标准的方法将值简单地邮递给服务器。在页面发送给客户之前,通过请求,值由修改服务器
控制的HTML保存并维护。

  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·asp+与asp的区别(1)  (2005-03-12)
 ·asp+与asp的区别(2)  (2005-03-12)
 ·asp+与asp的区别(3)  (2005-03-12)
 ·asp+与asp的区别(4)  (2005-03-12)
 ·ASP+ FORM handler例子  (2005-03-12)
 ·ASP+数据库操作例子  (2005-03-12)
 ·一个简单的ASP+留言板程序  (2005-03-12)
 ·转换ASP到ASP+  (2005-03-12)
 ·如何在ASP+中发送邮件  (2005-03-12)
 ·asp+初体验---用c#写的asp+域名查  (2005-03-12)

   栏目导行
  PHP编程
  ASP编程
  ASP.NET编程
  JAVA编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·DiscuzX2.5会员整合通行证发布
·帝国CMS 7.0版本功能建议收集
·帝国网站管理系统2012年授权购买说
·PHPWind8.7会员整合通行证发布
·[官方插件]帝国CMS-访问统计插件
·[官方插件]帝国CMS-sitemap插件
·[官方插件]帝国CMS内容页评论AJAX分
   类别最新
·在ASP中使用数据库
·使用ASP脚本技术
·通过启动脚本来感受ASP的力量
·学习使用ASP对象和组件
·解析asp的脚本语言
·初看ASP-针对初学者
·ASP开发10条经验总结
·ASP之对象总结
·ASP与数据库应用(给初学者)
·关于学习ASP和编程的28个观点
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统