快速业务通道

asp.net夜话之三:表单和控件

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21
"ctl00">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJNTQ0MjI5MTUzZGR1mFZ52ODFgAKe7Qx9/67qMGFJCA==" />
</div>
<input name="txtUserName" type="text" id="txtUserName" />
<input name="txtPassword" type="password" id="txtPassword" />
<input name="btnOK" type="submit" id="btnOK" value="提交" />
<div>
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWBAKIpeT6DgKl1bKzCQK1qbSRCwLdkpmPAcJ7Zy/C66ypRIq49nr3hQNayqwk" />
</div></form>
</body>
</html>

我们可以看到在客服端得到的HTML代码中都是标准的HTML代码,我们的文本框和密码框及服务器端提交按钮(因为它在服务器代码里也有runat=”server”标记)变成了如下代码:

<input name="txtUserName" type="text" id="txtUserName" />

<input name="txtPassword" type="password" id="txtPassword" />

<input name="btnOK" type="submit" id="btnOK" value="提交" />

也就是,所有的服务器控件经过服务器运行之后都会变成标准的HTML控件。这样我们可以得出一个结论:如果我们的控件功能本来就很简单,我们就可以直接使用HTML控件,这样就可以减轻服务器的负担,提高运行效率。另外,在上面的代码中多了一些以前我们没有见过的部分:

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJNTQ0MjI5MTUzZGR1mFZ52ODFgAKe7Qx9/67qMGFJCA==" />

<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWBAKIpeT6DgKl1bKzCQK1qbSRCwLdkpmPAcJ7Zy/C66ypRIq49nr3hQNayqwk" />

因为服务器会保存服务器控件的状态和属性,所以它会利用一些隐藏域来保存这方面的信息,这部分的内容是经过Base64编码的。

服务器控件的好处是我们可以动态在代码中动态控制服务器控件的属性,对于上面的代码我们改造如下:

<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>服务器表单和HTML服务器控件</title>
</head>
<script runat="server">
protected void btnOK_Click(Object Src, EventArgs E)
{
Response.Write("用户名:"+this.txtUserName.Value);
Response.Write("密码:"+this.txtPassword.Value);
this.btnOK.Disabled=true;
}
</script>
<body>
<form runat="server">
<input type="text" runat="server" id="txtUserName" />
<input type="password" runat="server" id="txtP

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号