<?xml version="1.0" encoding="GBK"?>
<rss xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>tasking</title>
    <link>http://blog.china.com//u/070827/73328/</link>
    <description>seo</description>
    <managingEditor>task</managingEditor>
    <dc:creator>task</dc:creator>
    <item>
      <title>ASP.NET教程第三讲 输入验证控件</title>
      <link>http://blog.china.com//u/070827/73328/200709/882668.html</link>
      <description>&lt;![CDATA[ &lt;DIV&gt;&#xD;
&lt;P&gt;&lt;FONT color=#000000&gt;　&lt;FONT color=#ffffff&gt;3.1 ASP.NET解决了ASP的难题:验证表单填写的正确性 &lt;/FONT&gt;&#xD;
&lt;P&gt;&lt;FONT color=#ffffff&gt;　　如今的商业网站，或者个人网站，多少都有客户调查啊，用户注册之类的东西，必然会用到表单，这些表单的填写正确与否，明显是由手写代码的方式来控制的。我承认编写代码，是一项有趣的工作，不过每次验证表单都来手写代码，我们希望提高我们的工作效率，并不是把我们很有限的时间花在表单的验证工作上。&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#ffffff&gt;　　基于另外的一些原因，Web应用程序很不好验证用户的输入，HTML 3.2 规范可以让你控制用户的反馈，但恶意的或者技术高超的用户可以绕过，因此即使有了浏览器端的手写代码，服务器端同样也需要验证，才能保证安全。&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#ffffff&gt;　　下面是微软的工作人员，给出的商业网站用手写代码控制表单验证的弊病。&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#ffffff&gt;　　1. 尽管错误信息或图标经常与输入元素相邻，但是它们几乎总是位于表的不同单元格中。&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#ffffff&gt;　　2. 页面中经常会有一个区域来汇总所有错误。&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#ffffff&gt;　　3. 许多站点包含客户端脚本，以便提供更快捷的反馈，同时防止白白地在与服务器之间往返。&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#ffffff&gt;　　4. 许多包含客户端脚本的站点在出现错误时会显示信息框。&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#ffffff&gt;　　5. 不仅会验证文本输入，还会验证下拉列表和单选按钮。&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#ffffff&gt;　　6. 如果某个字段为空，站点通常会显示与该条目无效时不同的信息或图标。&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#ffffff&gt;　　7. 许多有效性检查可以很好地代替常用的表达式。&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#ffffff&gt;　　8. 验证通常是基于两个输入之间的比较结果。&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#ffffff&gt;　　9. 90% 或 90% 以上的验证任务是一些常见的操作，例如检查姓名或邮政编码。大多数站点似乎仍在重复进行这些工作。&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#ffffff&gt;　　10. 因为站点之间的差别通常太大，无法获得一种完美的解决方案来处理每个站点的所有验证任务。&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#ffffff&gt;　　如果你想向你的同事证实你有一种很"酷"的方法，可以禁止在姓名字段里面输入空值，记得选择ASP.NET，并且看下面的教程。 &lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#ffffff&gt;　　3.2 ASP.NET进行表单验证的过程&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#ffffff&gt;　　1. aspx文件被编译，运行&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#ffffff&gt;　　2. 用户输入数据&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#ffffff&gt;　　3. 触发Page_Load事件&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#ffffff&gt;　　4. 更改Web控件属性，提示哪里没有输入&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#ffffff&gt;　　5. 将页面用Html重新输出给用户&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#ffffff&gt;　　6. 再次提醒用户输入&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#ffffff&gt;　　3.3 Page_Load 过程&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#ffffff&gt;　　Page 对象包含一些与服务器端验证有关的重要属性和方法。下表列出了Page_Load属性的所有Collect和methed。&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&#xD;
&lt;TABLE style="WIDTH: 442px; HEIGHT: 234px" cellSpacing=0 width=442 align=center border=1&gt;&#xD;
&lt;TBODY&gt;&#xD;
&lt;TR&gt;&#xD;
&lt;TD&gt;&lt;FONT color=#ffffff&gt;Page_Load方法名&lt;/FONT&gt;&lt;/TD&gt;&#xD;
&lt;TD&gt;&lt;FONT color=#ffffff&gt;说明&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&#xD;
&lt;TR&gt;&#xD;
&lt;TD&gt;&lt;FONT color=#ffffff&gt;IsValid（最经常使用）&lt;/FONT&gt;&lt;/TD&gt;&#xD;
&lt;TD&gt;&lt;FONT color=#ffffff&gt;这是最有用的属性。该属性可以检查整个表单是否有效。通常在更新数据库之前进行该检查。只有 Validators 集中的所有对象全部有效，该属性才为真，并且不将该值存入缓存 。&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&#xD;
&lt;TR&gt;&#xD;
&lt;TD&gt;&lt;FONT color=#ffffff&gt;Validators&lt;/FONT&gt;&lt;/TD&gt;&#xD;
&lt;TD&gt;&lt;FONT color=#ffffff&gt;该页所有验证对象的集合。这是实现 IValidator 界面的对象的集合。&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&#xD;
&lt;TR&gt;&#xD;
&lt;TD&gt;&lt;FONT color=#ffffff&gt;Validate&lt;/FONT&gt;&lt;/TD&gt;&#xD;
&lt;TD&gt;&lt;FONT color=#ffffff&gt;在验证时调用的一种方法。在 Page 对象上默认的执行方式是转至每个验证器，并要求各验证器自行评估。&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#ffffff&gt;　　3.4 用来验证表单的验证器（Web控件）&lt;BR&gt;&lt;/FONT&gt;&#xD;
&lt;TABLE style="WIDTH: 452px; HEIGHT: 418px" cellSpacing=0 width=452 align=center border=1&gt;&#xD;
&lt;TBODY&gt;&#xD;
&lt;TR&gt;&#xD;
&lt;TD&gt;&lt;FONT color=#ffffff&gt;RequiredFieldValidator&lt;/FONT&gt;&lt;/TD&gt;&#xD;
&lt;TD&gt;&lt;FONT color=#ffffff&gt;检查用户是否输入或选择了任何内容&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&#xD;
&lt;TR&gt;&#xD;
&lt;TD&gt;&lt;FONT color=#ffffff&gt;RegularExpressionValidator&lt;/FONT&gt;&lt;/TD&gt;&#xD;
&lt;TD&gt;&lt;FONT color=#ffffff&gt;根据规则表达式检查用户输入。该过程允许进行许多种类的检查，可以用于邮政编码和电话号码等的检查。&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&#xD;
&lt;TR&gt;&#xD;
&lt;TD&gt;&lt;FONT color=#ffffff&gt;CompareValidator&lt;/FONT&gt;&lt;/TD&gt;&#xD;
&lt;TD&gt;&lt;FONT color=#ffffff&gt;将输入控件与一个固定值或另一个输入控件进行比较。例如，它可以用在口令验证字段中。也可以用来比较输入的日期和数字。&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&#xD;
&lt;TR&gt;&#xD;
&lt;TD&gt;&lt;FONT color=#ffffff&gt;RangeValidator&lt;/FONT&gt;&lt;/TD&gt;&#xD;
&lt;TD&gt;&lt;FONT color=#ffffff&gt;与 CompareValidator 非常相似, 只是它用来检查输入是否在两个值或其它输入控件的值之间。&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&#xD;
&lt;TR&gt;&#xD;
&lt;TD&gt;&lt;FONT color=#ffffff&gt;CustomValidator&lt;/FONT&gt;&lt;/TD&gt;&#xD;
&lt;TD&gt;&lt;FONT color=#ffffff&gt;允许用户编写自己的代码以加入到验证框架中。&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/DIV&gt;&#xD;
&lt;P&gt;&lt;FONT color=#ffffff&gt;　&lt;B&gt;3.5 实例说明上面所描述的控件的运作&lt;/B&gt;&lt;BR&gt;&lt;BR&gt;　　我们建立一个最小化的.aspx页面，我们不需要华丽的修饰效果。&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#00ff40&gt;＜p＞请输入新的用户 ID 和口令＜/p＞&lt;BR&gt;＜form runat=server＞&lt;BR&gt;＜table＞&lt;BR&gt;　＜tr＞&lt;BR&gt;　　＜td＞用户 ID ＜/td＞&lt;BR&gt;　　＜td＞＜input type=text runat=server id=txtName＞＜/td＞&lt;BR&gt;　＜/tr＞&lt;BR&gt;　＜tr＞&lt;BR&gt;　　＜td＞口令 ＜/td＞&lt;BR&gt;　　＜td＞＜input type=password runat=server id=txtPWord＞＜/td＞&lt;BR&gt;　＜/tr＞&lt;BR&gt;　＜tr＞&lt;BR&gt;　　＜td＞请重新输入口令 ＜/td＞&lt;BR&gt;　　＜td＞＜input type=password runat=server id=txtRePWord＞＜/td＞&lt;BR&gt;　＜/tr＞&lt;BR&gt;＜table＞＜br＞&lt;BR&gt;＜input type=submit runat=server id=cmdSubmit value=Submit＞&lt;BR&gt;＜/form＞&lt;/FONT&gt;&lt;BR&gt;&lt;IMG height=103 src="http://www.bc-cn.net/Article/UploadFDL05/200409/20040913165632488.jpg" width=174&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#ffffff&gt;程序是一个非常苛刻的东西，所以，要强调所有的项目都填写了，我们可以这样来做。在每一个字段前添加 RequiredFieldValidator。若输入字段为空，我们要在字段前显示一个星号(*)，并在旁边报告错误。&lt;BR&gt;例如：&lt;/FONT&gt;&lt;BR&gt;&lt;FONT color=#00ff40&gt;＜tr＞&lt;BR&gt;　＜td＞&lt;BR&gt;　　＜asp:RequiredFieldValidator runat=server &lt;BR&gt;　　　　　ControlToValidate=txtName&lt;BR&gt;　　　　　ErrorMessage="需要用户用户名。"＞ *&lt;BR&gt;　　＜/asp:RequiredFieldValidator＞&lt;BR&gt;　＜/td＞&lt;BR&gt;　＜td＞User ID:＜/td＞&lt;BR&gt;　＜td＞＜input type=text runat=server id=txtName＞＜/td＞&lt;BR&gt;＜/tr＞&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#ffffff&gt;若没有输入任何内容，则在标签旁边显示 "*"。出现出错消息。"ControlToValidate"属性指定了需要验证的控件ID。最后一步是向页面顶部显示所有的出错现象。&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;　　代码：&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#00ff40&gt;＜asp:ValidationSummary runat=server headerText=此页有错误：/＞&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;IMG height=211 src="http://www.bc-cn.net/Article/UploadFDL05/200409/20040913165634760.gif" width=216&gt;&lt;/P&gt;&#xD;
&lt;P&gt;　　&lt;FONT color=#ffffff&gt;然后，我们需要用户ID必须是6-10个字符，口令必须是4-12个字母，而且必须有@#$%^&amp;amp;*/的字符。&lt;BR&gt;&lt;BR&gt;　　代码： 这里我们增加了对ID长度的限制。&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#00ff40&gt;＜td＞&lt;BR&gt;　＜input type=text runat=server id=txtName＞&lt;BR&gt;　＜asp:RegularExpressionValidator runat=server &lt;BR&gt;　　　　ControlToValidate="txtName" &lt;BR&gt;　　　　ErrorMesage="口令必须由 6-10 个字母组成。"&lt;BR&gt;　　　　ValidationExpression="[a-zA-Z]{6,10}" /＞&lt;BR&gt;＜/td＞&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;　　&lt;FONT color=#ffffff&gt;接着，我们要验证两次输入的口令是否一样。&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#00ff40&gt;＜asp:RegularExpressionValidator runat=server display=dynamic&lt;BR&gt;　　　ControlToValidate="txtPWord" &lt;BR&gt;　　　ErrorMessage="口令必须包含 @#$%^&amp;amp;*/ 中的一个。"&lt;BR&gt;　　　ValidationExpression=".*[@#$%^&amp;amp;*/].*" /＞&lt;BR&gt;＜asp:RegularExpressionValidator runat=server display=dynamic&lt;BR&gt;　　　ControlToValidate="txtPWord" &lt;BR&gt;　　　ErrorMessage="口令必须是 4-12 个非空白字母。" &lt;BR&gt;　　　ValidationExpression="[S{4,12}" /＞&lt;BR&gt;＜asp:CompareValidator runat=server&lt;BR&gt;　　　ControlToValidate=txtRePWord&lt;BR&gt;　　　ControlToCompare=txtPWord &lt;BR&gt;　　　ErrorMessage="口令不匹配。" /＞&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;　&lt;FONT color=#ffffff&gt;　默认情况下，CompareValidator 只做简单的字符串匹配比较。如果需要，它可进行涉及日期和数字的更复杂的比较。&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#ffffff&gt;&lt;STRONG&gt;3.6 几个需要注意的问题&lt;BR&gt;&lt;BR&gt;&lt;/STRONG&gt;　　关于脚本库 &lt;BR&gt;&lt;BR&gt;　　因为验证 Web 控件脚本在脚本库中，所以不必将所有客户端验证的代码直接发送到页面中，尽管表面上似乎是这样做的。主要的脚本文件引用类似如下所示：&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#00ff40&gt;＜script language="Javascript" &lt;BR&gt;　　　　src="/_aspx/1.0.9999/script/WebUIValidation.js"＞&lt;BR&gt;＜/script＞&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;　　&lt;FONT color=#ffffff&gt;默认情况下，脚本文件将安装在 "_aspx" 目录中默认的根目录下，并使用相对于根的脚本 include 指令调用，该指令以正斜线开头。该引用表明每个单独的对象不必包含脚本库，同一台计算机上的所有页面可以引用同一个文件。您会注意到，该路径中还有一个公用的语言运行时版本号，以便不同的运行时版本可以在同一台计算机上运行。 &lt;BR&gt;&lt;BR&gt;　　如果查看一下您默认的虚拟根目录，您会找到该文件并查看其中的内容。这些文件的位置在 config.web 文件中指定。config.web 文件是一个用于大多数 ASP+ 设置的 XML 文件。以下是该文件中位置的定义：&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#00ff40&gt;＜webcontrols&lt;BR&gt;　　clientscriptslocation="/_aspx/{0}/script/"&lt;BR&gt;/＞&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#ffffff&gt;　　鼓励您阅读该脚本，以便深入了解发生的事件。不过，建议您不要修改这些脚本，因为它们的功能与特定的运行时版本紧密相连。在运行时版本更新时，这些脚本可能也需要相应的更新，您将或者放弃更改，或者面临脚本不工作的问题。如果特定项目必须更改这些脚本，先备份这些脚本，然后将您的项目指向备份文件，方法是使用私有的 config.web 文件替代这些文件的位置。如果字符串中包含格式指令 "{0}"，运行时版本号将替换该指令。最好将该位置更改为一个相对引用或绝对引用。&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#ffffff&gt;　3.7 一个完整的案例 &lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#ffffff&gt;&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#ffffff&gt;　　我们现在要做一个杂志订阅系统，要用户输入Email，输入两次密码，密码要一样，密码要求安全，所以必须包括(&lt;/FONT&gt;&lt;A href="mailto:!@#$%"&gt;&lt;FONT color=#ffffff&gt;!@#$%&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;^&amp;amp;*+;:)，输入用户的电话，最长20位，必须选择信用卡，输入卡号，卡号为15位，程序如下，好简单的，大家看看。&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#00ff40&gt;＜%&lt;BR&gt;　public sub OnSubmit(source as Object, e as EventArgs)&lt;BR&gt;　　if Page.IsValid then&lt;BR&gt;　　　'数据入库等操作 &lt;BR&gt;　　end if&lt;BR&gt;　end sub&lt;BR&gt;%＞&lt;BR&gt;＜h3＞＜font face="Verdana"＞订阅时尚生活杂志＜/font＞＜/h3＞&lt;BR&gt;＜form runat=server＞&lt;BR&gt;　＜hr width=600 size=1 noshade＞&lt;BR&gt;　＜center＞&lt;BR&gt;　＜asp:ValidationSummary ID="valSum" runat="server" &lt;BR&gt;　　　　HeaderText="您必须填写完整所有的选项"&lt;BR&gt;　　　　DisplayMode="SingleParagraph"&lt;BR&gt;　　　　Font-Name="verdana" &lt;BR&gt;　　　　Font-Size="12" &lt;BR&gt;　/＞&lt;BR&gt;　＜p＞&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#00ff40&gt;　＜!-- sign-in --＞&lt;BR&gt;　＜table border=0 width=600＞&lt;BR&gt;　　＜tr＞＜td colspan=3＞&lt;BR&gt;　　＜table border=0 cellpadding=0 cellspacing=0 width="100%"＞&lt;BR&gt;　　　＜tr＞＜td＞&lt;BR&gt;　＜font face=geneva,arial size=-1＞＜b＞Sign-In Information＜/b＞&lt;BR&gt;　＜/font＞&lt;BR&gt;　　　＜/td＞＜/tr＞&lt;BR&gt;　　＜/table＞&lt;BR&gt;　　＜/td＞＜/tr＞&lt;BR&gt;　　　　＜tr＞&lt;BR&gt;　　　　＜td align=right＞&lt;BR&gt;　　　　　＜font face=Arial size=2＞输入您的Email＜/font＞&lt;BR&gt;　　　　　　　　　　　　　　　＜/td＞&lt;BR&gt;　　　　＜td＞&lt;BR&gt;　　　＜asp:TextBox id=email width=200px maxlength=60 runat=server /＞&lt;BR&gt;　　　　＜/td＞&lt;BR&gt;　　　　＜td＞&lt;BR&gt;　　　　　＜asp:RequiredFieldValidator id="emailReqVal"&lt;BR&gt;　　　　　　　　ControlToValidate="email"&lt;BR&gt;　　　　　　　　ErrorMessage="您的Email. "&lt;BR&gt;　　　　　　　　Display="Dynamic"&lt;BR&gt;　　　　　　　　Font-Name="Verdana" Font-Size="12"&lt;BR&gt;　　　　　　　　runat=server＞&lt;BR&gt;　　　　　　　　*&lt;BR&gt;　　　　　＜/asp:RequiredFieldValidator＞&lt;BR&gt;　　　　　＜asp:RegularExpressionValidator id="emailRegexVal"&lt;BR&gt;　　　　　　　　ControlToValidate="email"&lt;BR&gt;　　　　　　　　Display="Static"&lt;BR&gt;　　　　　　　　ValidationExpression=&lt;BR&gt;　　　　　　　　　 "^[w-]+@[w-]+.(com|net|org|edu|mil)$"&lt;BR&gt;　　　　　　　　Font-Name="Arial" Font-Size="11"&lt;BR&gt;　　　　　　　　runat=server＞&lt;BR&gt;　　　　　不是一个正确的Email 请输入一个正确的Email&lt;BR&gt;　　　　　＜/asp:RegularExpressionValidator＞&lt;BR&gt;　　　　＜/td＞&lt;BR&gt;　　　＜/tr＞&lt;BR&gt;　　　＜tr＞&lt;BR&gt;　　　　＜td align=right＞&lt;BR&gt;　　　　　＜font face=Arial size=2＞密码:＜/font＞&lt;BR&gt;　　　　＜/td＞&lt;BR&gt;　　　　＜td＞&lt;BR&gt;　　　　　＜asp:TextBox id=passwd TextMode="password" maxlength=20 &lt;BR&gt;　　　　　　　　　　　　runat=server/＞&lt;BR&gt;　　　　＜/td＞&lt;BR&gt;　　　　＜td＞&lt;BR&gt;　　　　　＜asp:RequiredFieldValidator id="passwdReqVal"&lt;BR&gt;　　　　　　　　ControlToValidate="passwd" &lt;BR&gt;　　　　　　　　ErrorMessage="密码. "&lt;BR&gt;　　　　　　　　Display="Dynamic"&lt;BR&gt;　　　　　　　　Font-Name="Verdana" Font-Size="12"&lt;BR&gt;　　　　　　　　runat=server＞&lt;BR&gt;　　　　　　　　*&lt;BR&gt;　　　　　＜/asp:RequiredFieldValidator＞&lt;BR&gt;　　　　　＜asp:RegularExpressionValidator id="passwdRegexBal"&lt;BR&gt;　　　　　　　　ControlToValidate="passwd" &lt;BR&gt;　　　　　　　　ValidationExpression=".*[!@#$%^&amp;amp;*+;:].*"&lt;BR&gt;　　　　　　　　Display="Static"&lt;BR&gt;　　　　　　　　Font-Name="Arial" Font-Size="11"&lt;BR&gt;　　　　　　　　Width="100%" runat=server＞&lt;BR&gt;　　　　　密码必须包括下面中的一个 (&lt;/FONT&gt;&lt;A href="mailto:!@#$%"&gt;&lt;FONT color=#00ff40&gt;!@#$%&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#00ff40&gt;^&amp;amp;*+;:)&lt;BR&gt;　　　　　＜/asp:RegularExpressionValidator＞&lt;BR&gt;　　　　＜/td＞&lt;BR&gt;　　　＜/tr＞&lt;BR&gt;　　　＜tr＞&lt;BR&gt;　　　　＜td align=right＞&lt;BR&gt;　　　　　＜font face=Arial size=2＞请再输入一次密码:＜/font＞&lt;BR&gt;　　　　＜/td＞&lt;BR&gt;　　　　＜td＞&lt;BR&gt;　　　　　＜asp:TextBox id=passwd2 TextMode="password" maxlength=20 &lt;BR&gt;　　　　　　　　runat=server/＞&lt;BR&gt;　　　　＜/td＞&lt;BR&gt;　　　　＜td＞&lt;BR&gt;　　　　　＜asp:RequiredFieldValidator id="passwd2ReqVal"&lt;BR&gt;　　　　　　　　ControlToValidate="passwd2" &lt;BR&gt;　　　　　　　　ErrorMessage="再输入一次密码. "&lt;BR&gt;　　　　　　　　Display="Dynamic"&lt;BR&gt;　　　　　　　　Font-Name="Verdana" Font-Size="12"&lt;BR&gt;　　　　　　　　runat=server＞&lt;BR&gt;　　　　　　　　*&lt;BR&gt;　　　　　＜/asp:RequiredFieldValidator＞&lt;BR&gt;　　　　　＜asp:CompareValidator id="CompareValidator1"&lt;BR&gt;　　　　　　ControlToValidate="passwd2" ControlToCompare="passwd"&lt;BR&gt;　　　　　　Display="Static"&lt;BR&gt;　　　　　　Font-Name="Arial" Font-Size="11"&lt;BR&gt;　　　　　　runat=server＞&lt;BR&gt;　　　　　　两次输入的密码怎么不一样：）&lt;BR&gt;　　　　　＜/asp:CompareValidator＞&lt;BR&gt;　　　　＜/td＞&lt;BR&gt;　　　＜/tr＞&lt;BR&gt;　　　　＜tr＞＜td colspan=3＞ ＜/td＞＜/tr＞&lt;BR&gt;　　　　＜!-- personalization information --＞&lt;BR&gt;　　　　＜tr＞＜td colspan=3＞&lt;BR&gt;　　　　　＜table border=0 cellpadding=0 cellspacing=0 width="100%"＞&lt;BR&gt;　　　　　　＜tr＞＜td＞＜font face=geneva,arial size=-1＞&lt;BR&gt;　　　　　　　＜b＞Personal Information＜/b＞＜/font＞&lt;BR&gt;　　　　　　＜/td＞＜/tr＞&lt;BR&gt;　　　　　＜/table＞&lt;BR&gt;　　　　＜/td＞＜/tr＞&lt;BR&gt;　　　＜tr＞&lt;BR&gt;　　　　＜td align=right＞&lt;BR&gt;　　　　　＜font face=Arial size=2＞电话:＜/font＞&lt;BR&gt;　　　＜/td＞&lt;BR&gt;　　　＜td＞&lt;BR&gt;　　　　＜asp:TextBox id="phone" maxlength=20 runat="server" /＞&lt;BR&gt;　　　＜/td＞&lt;BR&gt;　　　＜td＞&lt;BR&gt;　　　　＜asp:RequiredFieldValidator id="phoneReqVal"&lt;BR&gt;　　　　　　ControlToValidate="phone"&lt;BR&gt;　　　　　　ErrorMessage="Phone. "&lt;BR&gt;　　　　　　Display="Dynamic"&lt;BR&gt;　　　　　　Font-Name="Verdana" Font-Size="12"&lt;BR&gt;　　　　　　runat=server＞&lt;BR&gt;　　　　　　*&lt;BR&gt;　　　　＜/asp:RequiredFieldValidator＞&lt;BR&gt;　　　＜/td＞&lt;BR&gt;　　＜/tr＞&lt;BR&gt;　　＜tr＞＜td colspan=3＞ ＜/td＞＜/tr＞&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#00ff40&gt;　　　＜!-- Credit Card Info --＞&lt;BR&gt;　　＜tr＞&lt;BR&gt;　　　＜td colspan=3＞&lt;BR&gt;　　　＜font face=Arial size=2＞＜b＞Credit Card Information＜/b＞＜/font＞&lt;BR&gt;　　　＜/td＞&lt;BR&gt;　　＜/tr＞&lt;BR&gt;　　＜tr＞&lt;BR&gt;　　　＜td align=right＞&lt;BR&gt;　　　　＜font face=Arial size=2＞Card Type:＜/font＞&lt;BR&gt;　　　＜/td＞&lt;BR&gt;　　　＜td＞&lt;BR&gt;　　　　＜ASP:RadioButtonList id=ccType &lt;BR&gt;　　　　　　　Font-Name="Arial" RepeatLayout="Flow" runat=server＞&lt;BR&gt;　　　　＜asp:ListItem＞招商银行一卡通＜/asp:ListItem＞&lt;BR&gt;　　　　＜asp:ListItem＞建设银行龙卡＜/asp:ListItem＞&lt;BR&gt;　　　　＜/ASP:RadioButtonList＞&lt;BR&gt;　　　＜/td＞&lt;BR&gt;　　　＜td＞&lt;BR&gt;　　　　＜asp:RequiredFieldValidator id="ccTypeReqVal"&lt;BR&gt;　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　ControlToValidate="ccType" &lt;BR&gt;　　　　　　　ErrorMessage="信用卡种类. "&lt;BR&gt;　　　　　　　Display="Static"&lt;BR&gt;　　　　　　　InitialValue=""&lt;BR&gt;　　　　　　　Font-Name="Verdana" Font-Size="12"&lt;BR&gt;　　　　　　　runat=server＞&lt;BR&gt;　　　　　　　　*&lt;BR&gt;　　　 ＜/asp:RequiredFieldValidator＞&lt;BR&gt;　　　＜/td＞&lt;BR&gt;　　＜/tr＞&lt;BR&gt;　　＜tr＞&lt;BR&gt;　　　＜td align=right＞&lt;BR&gt;　　　　＜font face=Arial size=2＞Card Number:＜/font＞&lt;BR&gt;　　　＜/td＞&lt;BR&gt;　　　＜td＞&lt;BR&gt;　　　　＜ASP:TextBox id=ccNum runat=server /＞&lt;BR&gt;　　　＜/td＞&lt;BR&gt;　　　＜td＞&lt;BR&gt;　　　　＜asp:RequiredFieldValidator id="ccNumReqVal"&lt;BR&gt;　　　　　　　ControlToValidate="ccNum"&lt;BR&gt;　　　　　　　ErrorMessage="信用卡号. "&lt;BR&gt;　　　　　　　Display="Dynamic"&lt;BR&gt;　　　　　　　Font-Name="Verdana" Font-Size="12"&lt;BR&gt;　　　　　　　runat=server＞&lt;BR&gt;　　　　　　　*&lt;BR&gt;　　　　＜/asp:RequiredFieldValidator＞&lt;BR&gt;　　　　＜asp:RegularExpressionValidator id="ccNumCustVal"&lt;BR&gt;　　　　　　　ControlToValidate="ccNum" &lt;BR&gt;　　　　　　　Display="Static"&lt;BR&gt;　　　　　　　ValidationExpression="^d{15}$"&lt;BR&gt;　　　　　　　Font-Name="Arial" Font-Size="11"&lt;BR&gt;　　　　　　　runat=server＞&lt;BR&gt;　　　　信用卡号错误&lt;BR&gt;　　　　＜/asp:RegularExpressionValidator＞&lt;BR&gt;　　　＜/td＞&lt;BR&gt;　　＜/tr＞&lt;BR&gt;　＜/table＞&lt;BR&gt;　＜p＞&lt;BR&gt;　＜input runat="server" type=submit value="注册"＞&lt;BR&gt;　＜p＞&lt;BR&gt;＜/form＞&lt;BR&gt;＜/center＞&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color=#ffffff&gt; 好了，表单的验证，我们就讲到这里，下一讲，我们将介绍&lt;/FONT&gt;&lt;A class=channel_keylink href="http://www.bc-cn.net/Article/net/aspx/Index.html"&gt;&lt;FONT color=#ffffff&gt;ASP.NET&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ffffff&gt;处理数据的核心部分，数据绑定&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;DIV&gt;&lt;/DIV&gt;&#xD;
&lt;DIV&gt;&lt;/DIV&gt;&#xD;
&lt;DIV&gt;&lt;/DIV&gt;]]&gt;</description>
      <pubDate>星期一, 03 九月 2007 06:34:31 GMT</pubDate>
      <guid>http://blog.china.com//u/070827/73328/200709/882668.html</guid>
      <dc:date>2007-09-03T06:34:31Z</dc:date>
    </item>
    <item>
      <title>ASP.NET教程第二讲　ASP.NET控件</title>
      <link>http://blog.china.com//u/070827/73328/200709/881880.html</link>
      <description>&lt;![CDATA[ &lt;DIV&gt;&lt;STRONG&gt;2.1 ASP.NET 入门&lt;BR&gt;&lt;BR&gt;&lt;/STRONG&gt;　　通常谈一个学科，我们老是说，它入门很简单的嘛，ASP.net也是。ASP.NET提出一个概念，就是认为WEB页面，也是一个窗体，所以，学习过面向对象编程的VB VC BC Dephi的朋友，学起来就简单多了。&lt;BR&gt;&lt;BR&gt;　　一个ASP.net页面的后缀名是".aspx"，所以，IIS在你安装完ASP.NET时，也会把Default.aspx作为你的默认首页，网管朋友一定要注意了。&lt;BR&gt;&lt;BR&gt;　　ASP.NET 是后天编译运行的，只是在第一次运行时编译，所以，以后的运行速度比ASP执行快。 &lt;BR&gt;&lt;BR&gt;&lt;A name=2-2&gt;&lt;/A&gt;　　&lt;B&gt;2.2 写自己第一个ASP.NET的程序&lt;/B&gt;&lt;BR&gt;&lt;BR&gt;　　激动吗？很快就开始写第一个程序了，一般学任何语言都要Hello World!一下吧，那我们也来。&lt;BR&gt;在这之前写要说一下，ASP.NET的程序可以用任何东西写，甚至是Windows的记事本，当初基督山也很疑惑，要不要用 V Interdev .net 来编写啊，事实证明，那玩意没手写好用。&lt;BR&gt;&lt;BR&gt;　　＜%@ Page Language="VB"%＞ '说明一下你使用的哪一种语言来写.net的，如果是VB的话，这行可以不写。&lt;/DIV&gt;&#xD;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&#xD;
&lt;DIV align=center&gt;&lt;FONT color=#00ff40&gt;＜%Reponse.Write ("Hello World")%＞&lt;/FONT&gt;&lt;/DIV&gt;&lt;FONT color=#00ff40&gt;&lt;/FONT&gt;&#xD;
&lt;DIV&gt;&lt;BR&gt;　　命名 myfirstasp_net.aspx 来我们运行一下，果然，Hello World!&lt;BR&gt;&lt;BR&gt;　　注意，Response.Write 语句，我们原来写成 Response.Write "Hello World!"也是正确的，但在.net中，必须用"("和")"。&lt;BR&gt;&lt;BR&gt;&lt;A name=2-3&gt;&lt;/A&gt;　　&lt;B&gt;2.3 HTML 控件&lt;/B&gt; &lt;BR&gt;&lt;BR&gt;　　ASP.NET框架中的第一组控件称为 HTML 控件。这些控件位于 System.Web.UI.HtmlControls 命名空间中，是从 HtmlControl 基类中直接或间接派生出来的。图 1 说明了 HTML 控件的类层次结构。&lt;/DIV&gt;&#xD;
&lt;DIV align=center&gt;&lt;IMG style="WIDTH: 450px; HEIGHT: 409px" height=409 src="http://www.bc-cn.net/Article/UploadFDL05/200409/20040913165119231.gif" width=500&gt;&lt;BR&gt;&lt;BR&gt;图 1. ASP+ HTML 控件&lt;/DIV&gt;&#xD;
&lt;DIV align=left&gt;&lt;BR&gt;　　几乎所有对于任何包含 runat="server" 属性的标记，都会为其生成 HTML 控件。例如，下面的 HTML 可创建一个名为"textBox1"的 HtmlInputText 控件的实例：&lt;BR&gt;&lt;BR&gt;&lt;FONT color=#00ff40&gt;＜input type="text" runat="server" id="textBox1" value="some text"＞&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;　　下表中列出了 HTML 控件以及对应的 HTML 标记。&lt;BR&gt;&lt;BR&gt;&lt;/DIV&gt;&#xD;
&lt;DIV align=left&gt;&#xD;
&lt;TABLE style="WIDTH: 484px; HEIGHT: 595px" cellSpacing=0 width=484 align=center border=1&gt;&#xD;
&lt;TBODY&gt;&#xD;
&lt;TR&gt;&#xD;
&lt;TD&gt;控件&lt;/TD&gt;&#xD;
&lt;TD&gt;对应的标记&lt;/TD&gt;&lt;/TR&gt;&#xD;
&lt;TR&gt;&#xD;
&lt;TD&gt;HtmlAnchor&lt;/TD&gt;&#xD;
&lt;TD&gt;＜a＞&lt;/TD&gt;&lt;/TR&gt;&#xD;
&lt;TR&gt;&#xD;
&lt;TD&gt;HtmlButton&lt;/TD&gt;&#xD;
&lt;TD&gt;＜button＞&lt;/TD&gt;&lt;/TR&gt;&#xD;
&lt;TR&gt;&#xD;
&lt;TD&gt;HtmlSelect &lt;/TD&gt;&#xD;
&lt;TD&gt;＜select＞&lt;/TD&gt;&lt;/TR&gt;&#xD;
&lt;TR&gt;&#xD;
&lt;TD&gt;HtmlTextArea&lt;/TD&gt;&#xD;
&lt;TD&gt;＜textarea＞&lt;/TD&gt;&lt;/TR&gt;&#xD;
&lt;TR&gt;&#xD;
&lt;TD&gt;HtmlInputButton&lt;/TD&gt;&#xD;
&lt;TD&gt;＜input type="button"＞&lt;/TD&gt;&lt;/TR&gt;&#xD;
&lt;TR&gt;&#xD;
&lt;TD&gt;HtmlInputCheckBox&lt;/TD&gt;&#xD;
&lt;TD&gt;＜input type="check"＞&lt;/TD&gt;&lt;/TR&gt;&#xD;
&lt;TR&gt;&#xD;
&lt;TD&gt;HtmlInputRadioButton&lt;/TD&gt;&#xD;
&lt;TD&gt;＜input type="radio"＞&lt;/TD&gt;&lt;/TR&gt;&#xD;
&lt;TR&gt;&#xD;
&lt;TD&gt;HtmlInputText&lt;/TD&gt;&#xD;
&lt;TD&gt;＜input type="text"＞ 和&lt;BR&gt;＜input type="password"＞&lt;/TD&gt;&lt;/TR&gt;&#xD;
&lt;TR&gt;&#xD;
&lt;TD&gt;HtmlInputHidden&lt;/TD&gt;&#xD;
&lt;TD&gt;＜input type="hidden"＞&lt;/TD&gt;&lt;/TR&gt;&#xD;
&lt;TR&gt;&#xD;
&lt;TD&gt;HtmlInputImage&lt;/TD&gt;&#xD;
&lt;TD&gt;＜input type="image"＞&lt;/TD&gt;&lt;/TR&gt;&#xD;
&lt;TR&gt;&#xD;
&lt;TD&gt;HtmlInputFile&lt;/TD&gt;&#xD;
&lt;TD&gt;＜input type="file"＞&lt;/TD&gt;&lt;/TR&gt;&#xD;
&lt;TR&gt;&#xD;
&lt;TD&gt;HtmlForm&lt;/TD&gt;&#xD;
&lt;TD&gt;＜form＞&lt;/TD&gt;&lt;/TR&gt;&#xD;
&lt;TR&gt;&#xD;
&lt;TD&gt;HtmlImage&lt;/TD&gt;&#xD;
&lt;TD&gt;＜img＞&lt;/TD&gt;&lt;/TR&gt;&#xD;
&lt;TR&gt;&#xD;
&lt;TD&gt;HtmlTable&lt;/TD&gt;&#xD;
&lt;TD&gt;＜table＞&lt;/TD&gt;&lt;/TR&gt;&#xD;
&lt;TR&gt;&#xD;
&lt;TD&gt;HtmlTableRow&lt;/TD&gt;&#xD;
&lt;TD&gt;＜tr＞&lt;/TD&gt;&lt;/TR&gt;&#xD;
&lt;TR&gt;&#xD;
&lt;TD&gt;HtmlTableCell&lt;/TD&gt;&#xD;
&lt;TD&gt;＜td＞&lt;/TD&gt;&lt;/TR&gt;&#xD;
&lt;TR&gt;&#xD;
&lt;TD&gt;HtmlGenericControl&lt;/TD&gt;&#xD;
&lt;TD&gt;任何其它没有对应控件的标记，如 ＜span＞、＜div＞ 等&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&#xD;
&lt;P align=left&gt;　　&lt;BR&gt;　　对于现有的ASP程序，如果向ASP.NET移植，毫无疑问HTML控件将发挥最大的作用。&lt;/P&gt;&#xD;
&lt;P align=left&gt;&lt;STRONG&gt;2.4 Web 控件 &lt;BR&gt;&lt;BR&gt;&lt;/STRONG&gt;　　ASP.NET 框架中的第二组服务器控件称为 Web 控件。这些控件位于 System.Web.UI.WebControls 命名空间中，是从 WebControl 基类中直接或间接派生出来的。图 2 说明了 Web 控件的类层次结构。&lt;BR&gt;&lt;BR&gt;　　Web 控件中包括传统的表单控件，如 TextBox 和 Button ，以及其它更高抽象级别的控件，如 Calendar 和 DataGrid 控件。它们提供了一些能够简化开发工作的特性，其中包括： &lt;BR&gt;&lt;BR&gt;　　丰富而一致的对象模型：WebControl 基类实现了对所有控件通用的大量属性，这些属性包括 ForeColor、BackColor、Font、Enabled 等。属性和方法的名称是经过精心挑选的，以提高在整个框架和该组控件中的一致性。通过这些组件实现的具有明确类型的对象模型将有助于减少编程错误。&lt;BR&gt;&lt;BR&gt;　　对浏览器的自动检测：Web 控件能够自动检测客户机浏览器的功能，并相应地调整它们所提交的 HTML，从而充分发挥浏览器的功能。&lt;BR&gt;&lt;BR&gt;　　数据绑定：在 Web 窗体页面中，可以对控件的任何属性进行数据绑定。此外，还有几种 Web 控件可以用来提交数据源的内容。 &lt;BR&gt;&lt;BR&gt;　　在 HTML 标记中，Web 控件会表示为具有命名空间的标记，即带有前缀的标记。前缀用于将标记映射到运行时组件的命名空间。标记的其余部分是运行时类自身的名称。与 HTML 控件相似，这些标记也必须包含 runat="server" 属性。下面是一个声明的示例：&lt;BR&gt;&lt;/P&gt;&#xD;
&lt;P align=justify&gt;&lt;FONT color=#00ff40&gt;＜asp:TextBox id="textBox1" runat="server" Text="基督山伯爵"＞&lt;BR&gt;＜/asp:TextBox＞&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P align=left&gt;在上例中，"asp"是标记前缀，会映射到 System.Web.UI.WebControls 命名空间。&lt;BR&gt;&lt;BR&gt;&lt;IMG style="WIDTH: 339px; HEIGHT: 142px" height=453 src="http://www.bc-cn.net/Article/UploadFDL05/200409/20040913165120452.gif" width=500&gt;&lt;BR&gt;&lt;BR&gt;图 2. ASP+ Web 控件&lt;BR&gt;&lt;BR&gt;　　&lt;B&gt;文本显示&lt;/B&gt; &lt;BR&gt;&lt;BR&gt;　　Label 控件用于在页面中显示只读的静态文本或数据绑定的文本：&lt;BR&gt;&lt;FONT color=#00ff40&gt;＜asp:Label runat="server" Text="Label1" Font-Italic="true"＞＜/asp:Label＞&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P align=left&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp; 输入控件&lt;/STRONG&gt; &lt;BR&gt;&lt;BR&gt;　　Web 控件组中包含的一些控件，允许最终用户输入将由服务器上的页面处理的数据。&lt;BR&gt;&lt;BR&gt;　　TextBox 控件用于提供文本编辑能力。与 Label 控件相似，这里的文本也可以是数据绑定的。TextBox 控件支持多种模式，可以用来实现单行输入、多行输入和密码输入：&lt;BR&gt;&lt;BR&gt;&lt;FONT color=#00ff40&gt;＜asp:TextBox runat="server" Text="TextBox1" font-c＞＜/asp:TextBox＞&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&#xD;
&lt;P align=left&gt;&lt;INPUT id=Text1 value=TextBox1 forecolor="#000000"&gt; &lt;/P&gt;&#xD;
&lt;P align=left&gt;&lt;FONT color=#00ff40&gt;＜asp:TextBox runat="server" Mode="Multiline" Rows="3"＞&lt;BR&gt;　　TextBox1&lt;BR&gt;＜/asp:TextBox＞&lt;BR&gt;&lt;/P&gt;&lt;/FONT&gt;&#xD;
&lt;P align=left&gt;&lt;IMG height=44 src="http://www.bc-cn.net/Article/UploadFDL05/200409/20040913165120332.gif" width=121&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT color=#00ff40&gt;＜asp:TextBox runat="server" Mode="Password"＞＜/asp:TextBox＞&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&#xD;
&lt;P align=left&gt;&lt;IMG height=18 src="http://www.bc-cn.net/Article/UploadFDL05/200409/20040913165120333.gif" width=121&gt;&lt;/P&gt;&#xD;
&lt;P align=left&gt;&lt;BR&gt;　　CheckBox 控件用于生成能够在选中和清除这两种状态间切换的复选框：&lt;BR&gt;&lt;BR&gt;&lt;FONT color=#00ff40&gt;＜asp:CheckBox runat="server" Text="CheckBox1" Checked="True"＞&lt;BR&gt;＜/asp:CheckBox＞&lt;/FONT&gt; &lt;BR&gt;&lt;/P&gt;&#xD;
&lt;P align=left&gt;&lt;INPUT id=Radio2 type=checkbox CHECKED&gt;RadioButon1 &lt;/P&gt;&#xD;
&lt;P align=left&gt;&lt;BR&gt;　　RadioButton 控件与 CheckBox 控件相似，但使用时通常会与其它 RadioButton 控件组成一组，以提供一组互斥的选项：&lt;/P&gt;&#xD;
&lt;P align=left&gt;&lt;FONT color=#00ff40&gt;＜asp:RadioButton runat="server" Text="RadioButton1" GroupName="Group1" Checked="true"＞&lt;BR&gt;＜/asp:RadioButton＞&lt;BR&gt;＜asp:RadioButton runat="server" Text="RadioButton2" GroupName="Group1"＞＜/asp:RadioButton＞&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P align=left&gt;&lt;INPUT id=Radio2 type=radio CHECKED&gt;RadioButon1 &lt;INPUT id=Radio1 type=radio&gt;RadioButon2&lt;/P&gt;&#xD;
&lt;P align=left&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 图像显示&lt;/STRONG&gt; &lt;BR&gt;&lt;BR&gt;　　Image 控件能够在页面上显示图像：&lt;/P&gt;&#xD;
&lt;P align=left&gt;&lt;FONT color=#00ff40&gt;＜asp:Image runat="server" ImageUrl="net.gif"＞＜/asp:Image＞&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P align=left&gt;&#xD;
&lt;TABLE width=550 align=center border=0&gt;&#xD;
&lt;TBODY&gt;&#xD;
&lt;TR&gt;&#xD;
&lt;TD&gt;&lt;IMG height=72 src="http://www.bc-cn.net/Article/UploadFDL05/200409/20040913165121529.gif" width=122&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;　　&lt;B&gt;版面控件&lt;/B&gt; &lt;BR&gt;&lt;BR&gt;　　Panel 控件常用作简单的组合控件以及动态创建的控件的容器。（请注意，Panel 控件通常不具有可见的外观。）&lt;/P&gt;&#xD;
&lt;P align=center&gt;&lt;FONT color=#00ff40&gt;＜asp:Panel runat="server"＞＜/asp:Panel＞&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P align=left&gt;Table 控件与相关的 TableRow 和 TableCell 控件相结合，可以用来以编程的方法创建表或表式版面布局：&lt;/P&gt;&#xD;
&lt;P align=left&gt;&lt;FONT color=#00ff40&gt;＜asp:Table runat="server" GridLines="Both" BorderWidth="1px"＞&lt;BR&gt;＜asp:TableRow＞&lt;BR&gt;＜asp:TableCell＞[0,0]＜/asp:TableCell＞&lt;BR&gt;＜asp:TableCell＞[0,1]＜/asp:TableCell＞&lt;BR&gt;＜/asp:TableRow＞&lt;BR&gt;＜asp:TableRow＞&lt;BR&gt;＜asp:TableCell＞[1,0]＜/asp:TableCell＞&lt;BR&gt;＜asp:TableCell＞[1,1]＜/asp:TableCell＞&lt;BR&gt;＜/asp:TableRow＞&lt;BR&gt;＜/asp:Table＞&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;TABLE cellSpacing=1 cellPadding=1 width=20 border=1&gt;&#xD;
&lt;TBODY&gt;&#xD;
&lt;TR&gt;&#xD;
&lt;TD&gt;[0,1]&lt;/TD&gt;&#xD;
&lt;TD&gt;[0,1]&lt;/TD&gt;&lt;/TR&gt;&#xD;
&lt;TR&gt;&#xD;
&lt;TD&gt;[1,0]&lt;/TD&gt;&#xD;
&lt;TD&gt;[1,1]&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&#xD;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;STRONG&gt;日期选择&lt;/STRONG&gt; &lt;BR&gt;&lt;BR&gt;　　Calendar 控件能够让用户浏览日期并进行日期选择（包括选择日期范围）：&lt;BR&gt;&lt;BR&gt;&lt;FONT color=#00ff40&gt;＜asp:Calendar runat=server DayNameFormat="FirstLetter" ...＞&lt;BR&gt;＜property name=SelectedDayStyle＞&lt;BR&gt;＜asp:TableItemStyle Font-Bold="True" BackColor="#CCCCFF"/＞&lt;BR&gt;＜/property＞&lt;BR&gt;...&lt;BR&gt;＜/asp:Calendar＞&lt;/FONT&gt;&lt;BR&gt;&#xD;
&lt;TABLE width=550 align=center border=0&gt;&#xD;
&lt;TBODY&gt;&#xD;
&lt;TR&gt;&#xD;
&lt;TD&gt;&lt;IMG height=200 src="http://www.bc-cn.net/Article/UploadFDL05/200409/20040913165121601.gif" width=220&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;/P&gt;&#xD;
&lt;P&gt;　　&lt;B&gt;列表绑定控件&lt;/B&gt; &lt;BR&gt;&lt;BR&gt;　　列表绑定控件用于显示与其相关联的数据源或列表的内容。它们提供了创建多种自定义及标准版式的能力。关于数据邦定，我们会用一个章节的内容来完整的说它。&lt;BR&gt;&lt;BR&gt;　　Repeater 控件是一个简单的列表绑定控件，它使用模板（即用于设定版式的 HTML 代码片断）来以一种"朴实无华"的，即没有预定义外观的方式显示数据源的内容：&lt;BR&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#00ff40&gt;＜asp:Repeater runat="server"＞&lt;BR&gt;＜template name="HeaderTemplate"＞&lt;BR&gt;＜ol＞&lt;BR&gt;＜/template＞&lt;BR&gt;＜template name="ItemTemplate"＞&lt;BR&gt;＜li＞&lt;BR&gt;＜a runat="server" href='＜%# DataBinder.Eval(Container.DataItem, "SiteURL") %＞'＞&lt;BR&gt;＜%# DataBinder.Eval(Container.DataItem, "SiteName") %＞&lt;BR&gt;＜/a＞&lt;BR&gt;＜/li＞&lt;BR&gt;＜/template＞&lt;BR&gt;＜template name="FooterTemplate"＞&lt;BR&gt;＜/ol＞&lt;BR&gt;＜/template＞&lt;BR&gt;＜/asp:Repeater＞&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;OL&gt;&#xD;
&lt;LI&gt;微软主页&lt;/LI&gt;&#xD;
&lt;LI&gt;MSDN主页&lt;/LI&gt;&#xD;
&lt;LI&gt;MSN主页&lt;/LI&gt;&#xD;
&lt;LI&gt;Homtmail&lt;/LI&gt;&lt;/OL&gt;&#xD;
&lt;P&gt;　　DataList 控件也使用模板来显示与之绑定的数据源的内容。此外，它还提供了自定义外观格式和布局的功能：&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#00ff40&gt;＜asp:DataList runat="server"＞&lt;BR&gt;＜template name="ItemTemplate"＞&lt;BR&gt;＜%# DataBinder.Eval(Container.DataItem, "PersonName") %＞&lt;BR&gt;...&lt;BR&gt;＜/template＞&lt;BR&gt;...&lt;BR&gt;＜/asp:DataList＞&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;IMG height=130 src="http://www.bc-cn.net/Article/UploadFDL05/200409/20040913165122646.gif" width=223&gt;&lt;BR&gt;　　DataGrid 控件能够创建格式丰富的列表版式，用来显示与之绑定的数据源的内容。它提供了对排序、编辑和分页的支持。&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#00ff40&gt;＜asp:DataGrid runat="server" ...＞&lt;BR&gt;＜property name="Columns"＞&lt;BR&gt;＜asp:BoundColumn HeaderText="ID" .../＞&lt;BR&gt;...&lt;BR&gt;＜/property＞&lt;BR&gt;... &lt;BR&gt;＜/asp:DataGrid＞&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;IMG height=73 src="http://www.bc-cn.net/Article/UploadFDL05/200409/20040913165122685.gif" width=226&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;STRONG&gt;Validation 控件&lt;/STRONG&gt; &lt;BR&gt;&lt;BR&gt;　　Validation 控件简化了对用户输入的内容进行验证的工作。它们能自动为上层浏览器生成客户机端脚本，以便在进行回传前，在用户的计算机上进行验证，从而实现了交互性和对用户友好性更加良好的页面。与此同时，它们也能在服务器上作为第二道防线来完成同样的工作。"有关的参考资料"一节中列出的其它文章对此进行了详细说明。 &lt;BR&gt;&lt;BR&gt;　　RequiredFieldValidator 控件用于确保用户填写了必须输入的那些输入控件。&lt;BR&gt;&lt;BR&gt;　　RangeValidator 控件用于检查用户输入的内容在有效取值范围之内。这对于数字或日期类型的输入内容十分有用。&lt;BR&gt;&lt;BR&gt;　　CompareValidator 控件用于对比一个控件中的输入内容与另一个控件中的输入内容。&lt;BR&gt;&lt;BR&gt;　　RegularExpressionValidator 控件能够检查用户输入的内容是否符合作为标准的规范表达式（或字符串模式）。&lt;BR&gt;&lt;BR&gt;　　CustomValidator 控件允许您提供自定义的服务器端和客户机端验证逻辑。&lt;BR&gt;&lt;BR&gt;　　ValidationSummary 控件能够提供由验证控件生成的所有错误信息的概要。 &lt;BR&gt;&lt;BR&gt;　　零杂控件 &lt;BR&gt;&lt;BR&gt;　　这个，我们会在第四讲，验证表单内容中详细阐述&lt;BR&gt;&lt;BR&gt;　　AdRotator 控件用于显示广告或横幅。广告的有关信息（包括其图像的 URL）使用 XML 文件来定义：&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#00ff40&gt;＜asp:AdRotator runat="server" AdvertisementFile="AdsList.XML"＞&lt;BR&gt;＜/asp:AdRotator＞&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;IMG style="WIDTH: 410px; HEIGHT: 60px" height=60 src="http://www.bc-cn.net/Article/UploadFDL05/200409/20040913165122136.gif" width=468&gt;&lt;/P&gt;&#xD;
&lt;P&gt;　　2.5 &lt;B&gt;HTML 控件，WEB控件，都可以产生一样的效果，到底谁优谁劣？&lt;/B&gt;&lt;BR&gt;&lt;BR&gt;　　在开发这些控件时，我们反复地问自己，是否真的有必要同时提供具有一些重复功能的 HTML 控件组和 Web 控件组。您肯定也想了解 HTML 控件和 Web 控件究竟有什么异同，以及它们各自适用的场合。&lt;BR&gt;这两组控件的异同可以通过以下方面来比较。&lt;BR&gt;&lt;BR&gt;　　&lt;B&gt;控件抽象&lt;/B&gt; &lt;BR&gt;&lt;BR&gt;　　HTML 控件不具备任何抽象能力。每种控件与 HTML 标记都是一一对应的（请参见表 1）。&lt;BR&gt;&lt;BR&gt;　　Web 控件创建了更高级别的抽象，它们没有任何对应的 HTML 标记（如 Calendar 和 DataGrid）。因为它们不直接映射为 HTML 标记，所以 Web 控件还能够在适当的场合起到合并功能的作用（例如用一个 TextBox 控件来代替多个标记）。这种抽象为使用第三方提供的种类丰富的控件工具箱打开了方便之门。 &lt;BR&gt;&lt;BR&gt;　　&lt;B&gt;对象模型&lt;/B&gt; &lt;BR&gt;&lt;BR&gt;　　HTML 控件提供了以 HTML 为中心的对象模型。每种控件都包括一个属性集，可以使用该属性集来控制标记的属性。这个属性集使用了字符串名/值对，并且不是强类型的。 &lt;BR&gt;&lt;BR&gt;　　在使用 HTML 控件时，您的编程方式与使用传统的 ASP 进行编程十分类似。因而，HTML 控件提供了一条快捷的移植途径 - 可以通过添加一个 runat="server" 属性来将一个标记转变为一个服务器控件。&lt;BR&gt;&lt;BR&gt;　　Web 控件提供了基于表单的、类似于 Visual Basic 的编程模式。它们也提供了属性集，但它们的主要目标在于提供一种格式丰富、类型安全且具有一致性的对象模型。每种 Web 控件都包含一组标准的属性，如 ForeColor、BackColor、Font 等。 &lt;BR&gt;&lt;BR&gt;　　这种对象模型还在像 Visual Studio .NET 这样的设计工具中提供了更丰富的设计时体验。&lt;BR&gt;&lt;BR&gt;　　&lt;B&gt;目标浏览器&lt;/B&gt; &lt;BR&gt;&lt;BR&gt;　　HTML 控件不会自动检测请求页面的浏览器的能力，也不会修改它们提供的 HTML。在使用这组控件时，您要负责确保您的页面能同时在高级和低级浏览器上工作。&lt;BR&gt;&lt;BR&gt;　　Web 控件能够自动对它们生成的结果进行调整，以确保输出结果在高级浏览器和低级浏览器上的工作同样出色。Web 控件还能够针对不同的浏览器提供不同的行为，从而充分发挥浏览器的潜力。例如，validation 控件还可以通过客户端的脚本来创建用于高级浏览器的具有高度交互性的页面。&lt;/P&gt;&#xD;
&lt;P&gt;　　&lt;B&gt;对生成的 HTML 的控制 &lt;/B&gt;&lt;BR&gt;&lt;BR&gt;　　HTML 控件允许您完全控制所显示的内容以及发送到客户机浏览器的内容。&lt;BR&gt;&lt;BR&gt;　　Web 控件提供了更为丰富的对象模型，以及适应多种浏览器的能力。因而，它们没有提供对输出结果的相同程度的控制能力。 &lt;BR&gt;&lt;BR&gt;　　在您开发 Web 应用程序时，您可以根据这两组控件的能力以及您的需求来从中进行选择。您还可以选择在同一页上混合使用这两组控件，使用一种类型的控件并不妨碍您同时使用另一种类型的控件。&lt;BR&gt;&lt;BR&gt;&lt;A name=2-6&gt;&lt;/A&gt;　　&lt;B&gt;2.6 修饰和打扮你的控件&lt;/B&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#00ff40&gt;＜span style="font: 12pt verdana; color:orange;font-weight:700" runat="server"＞&lt;BR&gt;This is some literal text inside a styled span control&lt;BR&gt;＜/span＞&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;　　注意画线部分，漂亮的字&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#00ff40&gt;＜button style="font: 8pt verdana;background-color:lightgreen;border-color:black;width:100" runat="server"＞Click me!＜/button＞&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;漂亮的按钮，有圆角，很Cool，不用自己用Photoshop做了&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#00ff40&gt;＜input type="text" value="One, Two, Three" style="font: 14pt verdana;background-color:yellow;border-style:dashed;border-color:red;width:300;" runat="server"/＞&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;　　虚线框哦，也不用Photoshop就可以做了，style很强大。&lt;BR&gt;&lt;BR&gt;　　&lt;FONT color=#00ff40&gt;asp:Calender 控件中&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#00ff40&gt;＜form runat="server"＞&lt;BR&gt;＜ASP:Calendar runat="server"&lt;BR&gt;BackColor="Beige" &lt;BR&gt;ForeColor="Brown"&lt;BR&gt;BorderWidth="3"&lt;BR&gt;BorderStyle="Solid"&lt;BR&gt;BorderColor="Black"&lt;BR&gt;Height="450"&lt;BR&gt;Width="450"&lt;BR&gt;Font-Size="12pt"&lt;BR&gt;Font-Name="Tahoma,Arial"&lt;BR&gt;Font-Underline="false"&lt;BR&gt;CellSpacing=2&lt;BR&gt;CellPadding=2 &lt;BR&gt;ShowGridLines=true&lt;BR&gt;/＞&lt;BR&gt;＜/form＞&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;　　注意有颜色部分，这部分就是对控件的修饰，它的作用，就是让你的Web窗体更漂亮.&lt;/P&gt;&#xD;
&lt;P&gt;　　再给一个例子&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT color=#00ff40&gt;＜ASP:Calendar CssClass="calstyle" runat="server"&lt;BR&gt;&lt;BR&gt;BackColor="Beige" &lt;BR&gt;ForeColor="Brown"&lt;BR&gt;BorderWidth="3"&lt;BR&gt;BorderStyle="Solid"&lt;BR&gt;BorderColor="Black"&lt;BR&gt;Height="450"&lt;BR&gt;Width="450"&lt;BR&gt;Font-Size="12pt"&lt;BR&gt;Font-Name="Tahoma,Arial"&lt;BR&gt;Font-Underline="false"&lt;BR&gt;CellSpacing=2&lt;BR&gt;CellPadding=2 &lt;BR&gt;ShowGridLines=true&lt;BR&gt;&lt;BR&gt;TitleStyle-BorderColor="darkolivegreen"&lt;BR&gt;TitleStyle-BorderWidth="3"&lt;BR&gt;TitleStyle-BackColor="olivedrab" &lt;BR&gt;TitleStyle-Height="50px"&lt;BR&gt;&lt;BR&gt;DayHeaderStyle-BorderColor="darkolivegreen" &lt;BR&gt;DayHeaderStyle-BorderWidth="3"&lt;BR&gt;DayHeaderStyle-BackColor="olivedrab"&lt;BR&gt;DayHeaderStyle-ForeColor="black"&lt;BR&gt;DayHeaderStyle-Height="20px" &lt;BR&gt;&lt;BR&gt;DayStyle-Width="50px"&lt;BR&gt;DayStyle-Height="50px"&lt;BR&gt;&lt;BR&gt;TodayDayStyle-BorderWidth="3"&lt;BR&gt;&lt;BR&gt;WeekEndDayStyle-BackColor="palegoldenrod"&lt;BR&gt;WeekEndDayStyle-Width="50px"&lt;BR&gt;WeekEndDayStyle-Height="50px"&lt;BR&gt;&lt;BR&gt;SelectedDayStyle-BorderColor="firebrick"&lt;BR&gt;SelectedDayStyle-BorderWidth="3"&lt;BR&gt;&lt;BR&gt;OtherMonthDayStyle-Width="50px"&lt;BR&gt;OtherMonthDayStyle-Height="50px"&lt;BR&gt;/＞&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;是不是更漂亮，设置也很简单，一看就能明白。&lt;BR&gt;&lt;BR&gt;&lt;A name=2-7&gt;&lt;/A&gt;　　&lt;B&gt;2.7 最重要的两个注意事项&lt;/B&gt;&lt;BR&gt;&lt;BR&gt;　　注意，.net支持的语言不是VBScript 而是VB，所以声明变量的时候，不是简单的Dim就行了。&lt;BR&gt;&lt;BR&gt;　　注意 你写程序有99.9999999999999999%的可能不能正常显示中文，解决的方法就是：在D:\WINNT\Microsoft.NET\Framework\v1.0.2204（具体目录有可能不是这个，自己看着像就是了）有一个config.web的文件，在这个文件里面把 ＜globalization requestencoding="iso-8859-1" responseencoding="iso-8859-1" /＞改为＜globalization requestencoding=" gb2312" responseencoding="gb2312"/＞ 好了，去体验一下中文的乐趣（同时大骂M$，应该把作为缺省语言啊！）&lt;/P&gt;]]&gt;</description>
      <pubDate>星期一, 03 九月 2007 03:45:54 GMT</pubDate>
      <guid>http://blog.china.com//u/070827/73328/200709/881880.html</guid>
      <dc:date>2007-09-03T03:45:54Z</dc:date>
    </item>
    <item>
      <title>ASP.NET教程第一讲　ASP.NET简介</title>
      <link>http://blog.china.com//u/070827/73328/200709/878442.html</link>
      <description>&lt;![CDATA[ &lt;DIV&gt;&lt;STRONG&gt;1.1 什么是&lt;/STRONG&gt;&lt;STRONG&gt;ASP.NET&lt;/STRONG&gt;&lt;BR&gt;&lt;BR&gt;　　ASP.net 是一种建立在通用语言上的程序构架，能被用于一台Web服务器来建立强大的Web应用程序。ASP.NET提供许多比现在的Web开发模式强大的的优势。&lt;BR&gt;&lt;BR&gt;　　执行效率的大幅提高&lt;BR&gt;&lt;BR&gt;　　ASP.NET是把基于通用语言的程序在服务器上运行。不像以前的ASP即时解释程序，而是将程序在服务器端首次运行时进行编译，这样的执行效果，当然比一条一条的解释强很多。&lt;BR&gt;&lt;BR&gt;　　世界级的工具支持&lt;BR&gt;ASP.net构架是可以用Microsoft（R）公司最新的产品 Visual Studio.net开发环境进行开发，WYSIWYG（What You See Is What You Get所见即为所得）的编辑。这些仅是ASP.NET强大化软件支持的一小部分。&lt;BR&gt;&lt;BR&gt;　　强大性和适应性&lt;BR&gt;&lt;BR&gt;　　因为ASP.net是基于通用语言的编译运行的程序，所以它的强大性和适应性，可以使它运行在Web应用软件开发者的几乎全部的平台上（笔者到现在为止只知道它只能用在Windows 2000 Server上）。通用语言的基本库，消息机制，数据接口的处理都能无缝的整合到ASP.net的Web应用中。ASP.NET同时也是language-independent语言独立化的，所以，你可以选择一种最适合你的语言来编写你的程序，或者把你的程序用很多种语言来写，现在已经支持的有C#（C++和Java的结合体），VB，Jscript。将来，这样的多种程序语言协同工作的能力保护您现在的基于COM+开发的程序，能够完整的移植向ASP.NET。&lt;BR&gt;&lt;BR&gt;　　简单性和易学性&lt;BR&gt;&lt;BR&gt;　　ASP.net是运行一些很平常的任务如表单的提交客户端的身份验证、分布系统和网站配置变得非常简单。例如ASP.NET页面构架允许你建立你自己的用户分界面，使其不同于常见的VB-Like界面。另外，通用语言简化开发使把代码结合成软件简单的就像装配电脑。&lt;BR&gt;&lt;BR&gt;　　高效可管理性&lt;BR&gt;&lt;BR&gt;　　ASP.net使用一种字符基础的，分级的配置系统，使你服务器环境和应用程序的设置更加简单。因为配置信息都保存在简单文本中，新的设置有可能都不需要启动本地的管理员工具就可以实现。这种被称为"Zero Local Administration"的哲学观念使Asp.net的基于应用的开发更加具体，和快捷。一个ASP.NET的应用程序在一台服务器系统的安装只需要简单的拷贝一些必须得文件，不需要系统的重新启动，一切就是这么简单。&lt;BR&gt;&lt;BR&gt;　　多处理器环境的可靠性&lt;BR&gt;&lt;BR&gt;　　ASP.net已经被刻意设计成为一种可以用于多处理器的开发工具，它在多处理器的环境下用特殊的无缝连接技术，将很大的提高运行速度。即使你现在的ASP.NET应用软件是为一个处理器开发的，将来多处理器运行时不需要任何改变都能提高他们的效能，但现在的ASP确做不到这一点。&lt;BR&gt;&lt;BR&gt;　　自定义性，和可扩展性&lt;BR&gt;&lt;BR&gt;　　ASP.net设计时考虑了让网站开发人员可以在自己的代码中自己定义"plug-in"的模块。这与原来的包含关系不同，ASP.NET可以加入自己定义的如何组件。网站程序的开发从来没有这么简单过。&lt;BR&gt;&lt;BR&gt;　　安全性&lt;BR&gt;&lt;BR&gt;　　基于Windows认证技术和每应用程序配置，你可以确性你的原程序时绝对安全的。（但是Asp的经验告诉我们，不能这么自信，M$老是会出Bug的）&lt;BR&gt;&lt;BR&gt;&lt;A name=1-2&gt;&lt;/A&gt;　　&lt;B&gt;1.2 本篇教程的主要内容&lt;/B&gt;&lt;BR&gt;&lt;BR&gt;　　ASP.NET的语法&lt;BR&gt;&lt;BR&gt;　　ASP.NET的语法有可能对老的ASP程序员来说很熟悉，但也有一些是全新的东西，QuickStart教程将在细节上全部谈到它们。&lt;BR&gt;&lt;BR&gt;　　ASP.NET的结构和特征&lt;BR&gt;&lt;BR&gt;　　介绍ASP.NET的所有特性，是ASP开发者可以编写交互性的世界级的应用软件，用比以前少的多时间和精力。&lt;BR&gt;&lt;BR&gt;　　最佳话的练习&lt;BR&gt;&lt;BR&gt;　　引用了一些练习题和如何回避在程序开发中潜在地容易犯的错误的方法，是开发更加顺利。&lt;BR&gt;&lt;BR&gt;　　为那些人编写的&lt;BR&gt;&lt;BR&gt;　　如果你从来没有开发过网站程序，那么这不适合你，你应该至少掌握一些HTML语言和简单的Web开发术语。你不需要先前的ASP开发经验（当然有经验更好），但是你必须了解交互式Web程序开发的概念，包含窗体，脚本，和数据接口的概念。&lt;/DIV&gt;&#xD;
&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;1.3 安装 &lt;/STRONG&gt;&lt;STRONG&gt;ASP.NET&lt;/STRONG&gt;&lt;BR&gt;&lt;BR&gt;　　跟基督山一起检查你们的计算机哦&lt;BR&gt;&lt;BR&gt;　　CPU Pentium II 450以上，推荐733&lt;BR&gt;&lt;BR&gt;　　内存 256M 推荐 512M&lt;BR&gt;&lt;BR&gt;　　硬盘空间 1G 或者更多&lt;BR&gt;&lt;BR&gt;　　操作系统Windows 2000 Pro Server AD Server 都可以，并安装 IIS 5 和 Windows 2000 SP1&lt;BR&gt;&lt;BR&gt;　　但基督山的机器配置 C266 超 333 内存 128M 硬盘 2G 还是安装成功了。&lt;BR&gt;&lt;BR&gt;　　检查一下大家是不是都用IE 5.5 了？&lt;BR&gt;&lt;BR&gt;　　我们还需要 MDAC（ADO）2.6以上版本（可以在微软网站下面下载。）&lt;BR&gt;&lt;BR&gt;　　最后，就是我们讲座的主角 Microsoft .Net Framework SDK 诶，在http://msdn.microsoft.com/net下可以下载，绝对地址在：http://download.microsoft.com/download/VisualStudioNET/Install/2204/NT5/EN-US/setup.exe 111M ，还好带宽不小ADSL的朋友可以达到全速（如果down不了的朋友，基督山可以帮着刻一张光盘，包括MDAC iIE5.5 SP1，.net SDK。）&lt;BR&gt;&lt;BR&gt;　　注意：教育网络上的朋友么，呵呵，在北京科技大学的服务器上面，有完整的文件可以下载，速度还不错，地址是：ftp://bbs.ustb.edu.cn/incoming/newsoft&lt;BR&gt;&lt;BR&gt;　　终于down完了，运行安装程序，.net安装到你的计算机里面去。&lt;BR&gt;&lt;BR&gt;&lt;A name=1-4&gt;&lt;/A&gt;　&lt;B&gt;　1.4 安装 .NET Framework 的快速入门示例&lt;/B&gt;&lt;BR&gt;&lt;BR&gt;　　打开 SDK Overview 链接 (.NET Framework SDK Overview)，该链接已在 SDK 安装过程中添加至您的桌面。 &lt;BR&gt;&lt;BR&gt;　　HTML 页面打开后，单击 .NET Framework Samples 链接。 &lt;BR&gt;&lt;BR&gt;　　按照安装步骤来安装示例。 &lt;BR&gt;&lt;BR&gt;　　安装完成后，您可以在 http://localhost/quickstart/default.htm 访问示例。 &lt;BR&gt;&lt;BR&gt;　　最后，在浏览默认文档时，您可以选择页面顶端的 ASP.NET 链接。此链接包含了 ASP.NET 示例的列表。这个教程是目前国际上面唯一的完全教程，也是Microsoft提供给我们学习ASP.net的唯一教程，可惜是全英文的，ASP.NET的先行者，全靠它了。&lt;BR&gt;&lt;BR&gt;&lt;A name=1-5&gt;&lt;/A&gt;　　&lt;B&gt;1.5 学习ASP.NET 的过程中如何求助--加入 ASPNG 讨论列表&lt;/B&gt;&lt;BR&gt;&lt;BR&gt;　　 Charles Carroll 作为不断壮大的 ASP.NET 社团的领导者之一，一直尽心尽力地主持着基于电子邮件的 ASP.NET 讨论列表。事实上，从七月初专业开发人员会议 (PDC) 的第一天开始，这个讨论列表就一直存。／在。&lt;BR&gt;&lt;BR&gt;　　此讨论列表是学习和发布日益丰富的 ASP.NET 开发人员知识的最佳选择。Charles 会检查和筛选所有的消息，确保发布的文章都与此列表相关，从而使讨论不脱离主题。&lt;BR&gt;&lt;BR&gt;　　除了社区方面的列表以外，Microsoft .NET Framework 小组还定期参加讨论并发布示例代码。最近一次是 Scott Guthrie 发布了一个动态生成图像的 ASP.NET 示例。&lt;BR&gt;&lt;BR&gt;　　要加入讨论列表，只需访问 http://www.asplists.com/asplists/aspng.asp （英文）。在此页面上，您可以找到与 ASP.NET 相关的不同主题的电子邮件讨论列表的完整列表。最活跃的列表是 ASPNGBeta，我们推荐您加入这个列表。请从列表中选择 ASPNGBeta。您也可以直接访问 http://www.asplists.com/asplists/aspngbeta.asp （英文），选择所需的接收电子邮件分发的选项。&lt;/DIV&gt;&#xD;
&lt;DIV&gt;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;1.6 完整的.NET 解决方案演示&lt;BR&gt;&lt;BR&gt;&lt;/STRONG&gt;　　IBuySpy Microsoft ASP.NET 示例应用程序&lt;BR&gt;&lt;BR&gt;　　IBuySpy（英文）是功能全面的电子商务应用程序，它详细介绍了如何使用 ASP.NET 创建高性能、可伸缩的 Web 应用程序。您可以联机浏览示例应用程序（包括完整的源代码和文档），也可以下载完整的 C# 或 Visual Basic.NET 版本的应用程序。&lt;BR&gt;&lt;BR&gt;　　http://www.ibuyspy.com/ &lt;BR&gt;&lt;BR&gt;&lt;A name=1-7&gt;&lt;/A&gt;　　&lt;B&gt;1.7 免费的.net空间&lt;/B&gt;&lt;BR&gt;&lt;BR&gt;　　Brinkster Inc.（英文）是最大的免费 ASP Web 主机服务提供商，它提供免费 ASP.NET 主机服务。加入的每个成员可获得 5 MB 空间用于测试和学习 ASP.NET。用于测试和学习的成员身份，给开发人员提供了了解这项新技术的机会。Brinkster 提供免费 ASP 主机服务已经有一年多的时间，在 ASP/ASP.NET 主机服务市场处于领先地位。&lt;BR&gt;&lt;BR&gt;　　http://www.brinkster.com/ （速度不是很理想）&lt;BR&gt;&lt;BR&gt;&lt;A name=1-8&gt;&lt;/A&gt;　&lt;B&gt;　1.8 国外相关的技术支持网站&lt;/B&gt;&lt;BR&gt;&lt;BR&gt;　　http://www.aspfree.com （英文）是比较全面的 ASP.NET 社区站点之一，由 Steve Schofield 管理。您可以在这里找到十多篇关于 ASP.NET 的文章，以及联机的 ASP.NET 快速入门示例。如果您不能安装 NET.SDK，这是您学习 ASP.NET 的不错的选择。作为奖励，您还可以得到 Wrox Press 出版的 A Preview of ASP.NET 第 1 章的联机版本。 &lt;BR&gt;&lt;BR&gt;　　http://www.aspng.com （英文）是另外一个比较全面的 ASP.NET 相关站点。ASPNG 包括至以下内容的链接：Charles Carroll 上载的 ASP.NET 类和 Stephen Walther 上载的 ASP.NET Workshop。最后，ASPNG 还包括一个比较活跃的电子邮件讨论列表。相关信息请参见 http://www.asplists.com （英文）。 &lt;BR&gt;&lt;BR&gt;　　http://www.ASP101.com （英文）几篇 ASP.NET 相关文章，以及按线索组织的、基于 Web 讨论的 ASP.NET论坛。 &lt;BR&gt;&lt;BR&gt;　　http://www.asptoday.com （英文）Wrox Press 的联机杂志已经有 10 篇关于 ASP.NET 的文章，范围从 ADO+ 到生成服务器控件。 &lt;BR&gt;&lt;BR&gt;　　http://www.4guysfromrolla.com （英文）4GuysFromRolla 包括一些文章和其他相关资源。文章内容涉及 ADO+ 和 ASP.NET 本身的概述。 &lt;BR&gt;&lt;BR&gt;　　http://www.devx.com （英文）最后，devx.com 包含比较全面的 ASP.NET 列表和可用的 .NET 相关资源。从书籍、Web 站点到活动，您都可以在这里找到感兴趣的东西。&lt;/DIV&gt;]]&gt;</description>
      <pubDate>星期日, 02 九月 2007 06:29:13 GMT</pubDate>
      <guid>http://blog.china.com//u/070827/73328/200709/878442.html</guid>
      <dc:date>2007-09-02T06:29:13Z</dc:date>
    </item>
    <item>
      <title>将军和士兵</title>
      <link>http://blog.china.com//u/070827/73328/200708/862403.html</link>
      <description>&lt;![CDATA[ &lt;DIV&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 月光如水。&lt;BR&gt;&lt;/FONT&gt;&#xD;
&lt;P&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 枪刺在月光下闪烁出一道寒光。士兵威严的站在哨位上。&lt;/FONT&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 将军踏着月光走来了。身后跟着一大帮陪同和随从人员。哨兵以规整的姿势迎接将军的到来。&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 将军打量了一下哨兵，以几十的戎马生涯铸就的威严口吻发问：“想不想家呀？”&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;“报告首长，为了革命，不想家！” &lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;“假话！”将军剑眉一竖，大声叱责。 &lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;哨兵的腿发抖了。他知道，眼前这位威严的将军是战争年代被称为“常胜将军”的兰州军区司令员皮定钧。&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; “革命就不要家了？没有家哪来的国？连家都不想咋保国？大话空话套话假话！” &lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 人们被震住了。在那突出的政治年代，谁敢说这样的话？&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; “不想家的士兵不是好兵。”将军看出了哨兵的紧张，走上前去，拍了拍还稚嫩的肩，“记着，要想着家里的父老，才能对得起肩上的钢枪。”&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 将军走了。&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;士兵的眼睛湿润了。不由悄悄将手伸进裤兜去摸那封已看了无数次的家信。&lt;/FONT&gt;&lt;/P&gt;&lt;/DIV&gt;]]&gt;</description>
      <pubDate>星期四, 30 八月 2007 03:06:02 GMT</pubDate>
      <guid>http://blog.china.com//u/070827/73328/200708/862403.html</guid>
      <dc:date>2007-08-30T03:06:02Z</dc:date>
    </item>
    <item>
      <title>借您一世亲情</title>
      <link>http://blog.china.com//u/070827/73328/200708/862386.html</link>
      <description>&lt;![CDATA[ &lt;DIV&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 如果不是来拿钱。父亲几乎不来我家。每当我凑足5000元钱，打电话给父亲，父亲就骑着那辆半新的摩托来了。进了屋，总是拘谨地坐在沙发上，不知道该说什么，顶多也就是问一句：这么快就有了？&lt;BR&gt;&lt;/FONT&gt;&#xD;
&lt;P&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;大学毕业那年，我暂时没工作，父亲让我去他们的小厂打工，日工资两元，一个月才挣那么几十元钱，我还拿不到手，因为父亲兼着会计，发工资时就扣了。我很不满，和父亲吵了起来。他居然说：“你都大学毕业了，还吃家里穿家里，你要钱有什么用，难道还想去抽烟，喝酒？”&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;此话对我刺激很大，我愤然辞职，跑到城里去找工作。我发誓，一定要超过父亲，自己挣钱自己花，不必受他的束缚、看他的脸色。&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 进城之后，我如鱼得水，事业顺畅，很快就有了足够的积蓄，买了房子，结了婚，在城里安家立业。所有这些，我都没向父亲要一分钱。&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;去年，我又买了大房子，借了父亲6万元。父亲说我是在折腾，有房子住就行了，为什么还要欠债换房。我气呼呼地说：“我是向您借钱，不是向您要钱。”父亲听了，没再吱声。&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 卖了旧房，钱虽不多，但够还父亲的。父亲说：“还是先还贷款吧，我的钱不急。”我听了并不高兴，起码他也认定他只是借钱给我。父子到了明算帐的份上，亲情便有了折扣。&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 就这样，每月父亲都会来我家里一次，这几乎成为了他来我家的唯一理由。一借一还中，我和父亲的心逐渐疏离。&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 一天，老家的村干部来城里办事。他们问起我的工作很生活，特别提到我的新房。村支书问：“这么贵的房，在乡下简直是神话，你父亲出了多少？”我说：“一分没给。”支书说：“别瞎掰了，你父亲说他给了你10万元。”&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 父亲有又来拿钱时，我决定和父亲好好谈谈。我提到了当年他扣我工资的事。父亲说，他知道那年我真生气了，一个人跑到城里闯荡，为此，他很内疚，尤其是我买房结婚，一分钱也没跟他要，他知道伤了我的心，更加内疚，总觉得对不起我。就是为这，父亲极少来我家。听说我买新房缺钱，他心里暗自高兴，他想，终于能帮上我的忙了，那一刻他很自豪。没想到，我把借字说出口，让他感到心凉，他知道，我还没有原谅他 。&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;可为什么父亲每次来拿钱都拘谨呢？&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 父亲说，每次接到电话，他都很高兴，因为这样他就能来我家了。但是，每次一还钱，他来的机会就少了一次。他为此而焦虑。&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 我的心一惊，忽然有种想哭的冲动。&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 我突然对父亲说：“我想买辆车，钱暂时不能还给你了。”&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 父亲眼睛一亮，说：“明天我就去银行给你取钱。”&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 这次，我给父亲打了个欠条，父亲很疑惑，但他看完了，就小心地叠好，忽然间老泪纵横。我在那张纸上写的是：借您一世亲情！&lt;/FONT&gt;&lt;/P&gt;&lt;/DIV&gt;]]&gt;</description>
      <pubDate>星期四, 30 八月 2007 03:03:29 GMT</pubDate>
      <guid>http://blog.china.com//u/070827/73328/200708/862386.html</guid>
      <dc:date>2007-08-30T03:03:29Z</dc:date>
    </item>
    <item>
      <title>情种”萨特</title>
      <link>http://blog.china.com//u/070827/73328/200708/862364.html</link>
      <description>&lt;![CDATA[ &lt;DIV&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 他的确是一个天才儿童，他也的确著作等身。他赢得了无数法国人也包括更多除法国以外的人的青睐……在小说、剧作、哲学以及文化评论上他都颇有斩获——但我写萨特准备主要写一写他的情史——谁都知道他其貌不扬(个子矮小不说，还是个严重的斜白眼)，但他的多情滥情也是世界闻名。小转铃大人有句名言曰：世界之所以这么小，就是由互联网和花花公子造成的。因而萨特对于人类的贡献不完全停留在文化艺术领域。&lt;BR&gt;&lt;/FONT&gt;&#xD;
&lt;P&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; １８岁的萨特，一个中学生，这才发育完没几年呢，他就和一个３０岁的女人有了第一次的性体验。&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; １９岁，他在一个亲戚的葬礼上认识了比他大３岁的西蒙娜。当时这个化名为“卡米尔”的年轻女人还是一个阔少爷的情妇，却毫无道理地被长相丑劣的萨特电倒……这位西蒙娜，或者说“卡米尔”，后来就是著名导演杜兰的夫人。&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; １９２９年，２４岁的萨特终于碰上了波伏瓦。值得一提的是，波伏瓦那可爱的绰号“海狸”并不是萨特给她的——萨特有个已婚好友率先认识了波伏瓦，并打算追求她，可是波伏瓦是个知识女青年，率先结婚的那个男人并没什么值得波伏瓦崇拜的地方，所以萨特一出现，本来跟她表哥火热恋爱中的波伏瓦迅即被电倒……他们俩分别取得了哲学教师资格会考的第一名和第二名之后，青眼相垂就此一生。&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 所谓“情种”其实就是感情的浪子。萨特虽然也很喜欢波伏瓦，但毕竟还不愿意一辈子束缚在一个女人身上。他们俩的前卫约定是互相出去恋爱，但必须对对方保持——“诚实”。很多年轻男人之所以那么喜欢萨特(包括我自己)，无非也就是羡慕他能得到这种非分的爱情。&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;现在我们来详细说说萨特跟波伏瓦是如何“互相出去恋爱”的。他们俩依仗着一个才高八斗一个才高七斗，对情窦初开的年轻人的吸引力自然非同一般。比如一个叫做奥尔嘉的小姑娘，虽然不学无术却照样被萨特和波伏瓦收作徒弟，唯一的原因是这个小姑娘漂亮。萨特先是跟这个小姑娘恋爱，然后附带跟这个小姑娘的妹妹也恋爱一把。这样一来波伏瓦好像有点吃亏，赶紧跟萨特的另外一个帅哥徒弟也恋爱。然而，也许萨特跟波伏瓦做梦都没想到，也许这是他们有意的安排，年轻小姑娘最后竟然跟萨特的帅哥徒弟好上了……趁早结束一段感情对于各路“情种”来说都是一件好事情。&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 飞蛾扑火。奥尔嘉之后，又有一位叫做“比安卡”的姑娘上当受骗。１７岁的比安卡先是成为了波伏瓦的同性恋对象，而后又被波伏瓦推销给那时已经３４岁的萨特……直到晚年，比安卡才认识到正是萨特跟波伏瓦的合谋，自己才变成了一个“被勾引的姑娘”。她写了一本回忆&amp;nbsp; 录《萨特，波伏瓦和我——被勾引的姑娘的回忆》，痛心疾首，但也为时已晚。&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;人生最后悔的是——让别人改变了人生道路，而没有经过自己的选择。&lt;/FONT&gt;&lt;FONT face=Verdana&gt;萨特曾经骄傲地宣称：吸引我的女人，要么漂亮，要么极有气质——我从不被真正难看的女人吸引过。他觉得身为一个作家，理应同很多女人恋爱(做爱)，以保证自己不断地产生和拥有激情。在萨特５５岁那一年，他又一次把自己的哲学学生骗到手，这一次他的手法是——“阿尔莱特，亲爱的，你做我的养女吧。”&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 上世纪六十年代开始，他迷上了旅游，但必须身边要配备一个年轻姑娘。当然，除此之外，但凡出国，都要与该国当地姑娘爱上一段。&lt;BR&gt;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 直到１９７０年，萨特已经６５岁了，波伏瓦说他当时还能“按时拜访情人……每周在情人那儿过夜两次……”&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&#xD;
&lt;P&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 不过对于萨特，波伏瓦总算是一个有情有义的伴侣。萨特弥留之际，只有波伏瓦在他身边陪着他，一直到死也是这样——波伏瓦要求医生允许她在萨特的尸体旁边躺了一个下午。波伏瓦最明白这一点，爱一个情种，就是要让他自由放肆地去爱。&lt;/FONT&gt;&lt;/P&gt;&lt;/DIV&gt;]]&gt;</description>
      <pubDate>星期四, 30 八月 2007 02:58:44 GMT</pubDate>
      <guid>http://blog.china.com//u/070827/73328/200708/862364.html</guid>
      <dc:date>2007-08-30T02:58:44Z</dc:date>
    </item>
    <item>
      <title>欢迎使用中华网BLOG</title>
      <link>http://blog.china.com//u/070827/73328/200708/847722.html</link>
      <description>&lt;![CDATA[ 发博客，交博友，从现在开始你的博客生涯吧。^_^]]&gt;</description>
      <pubDate>星期一, 27 八月 2007 05:20:23 GMT</pubDate>
      <guid>http://blog.china.com//u/070827/73328/200708/847722.html</guid>
      <dc:date>2007-08-27T05:20:23Z</dc:date>
    </item>
  </channel>
</rss>

