DropDownList控件是一个相对比较简单的数据绑定控件,它在客户端被解释成 <select> </select>这样的HTML标记,也就是只能有一个选项处于选中状态。 DropDownList控件常见属性: AutoPostBack属性:这个属性的用法在讲述基本控件的时候已经讲过,是用来设置当下拉列表项发生变化时是否主动向服务器提交整个表单,默认是false,即不主动提交。如果设置为true,就可以编写它的SelectedIndexChanged事件处理代码进行相关处理(注意:如果此属性为false即使编写了SelectedIndexChanged事件处理代码也不会马上起作用)。 DataTextField属性:设置列表项的可见部分的文字。 DataValueField属性:设置列表项的值部分。 Items属性:获取控件的列表项的集合。 SelectedIndex属性:获取或设置 DropDownList 控件中的选定项的索引。 SelectedItem属性:获取列表控件中索引最小的选定项。 SelectedValue属性:取列表控件中选定项的值,或选择列表控件中包含指定值的项。
控件抽象
HTML 控件不具备任何抽象能力。每种控件与 HTML 标记都是一一对应的(请参见表 1)。
Web 控件创建了更高级别的抽象,它们没有任何对应的 HTML 标记(如 Calendar 和 DataGrid)。因为它们不直接映射为 HTML 标记,所以 Web 控件还能够在适当的场合起到合并功能的作用(例如用一个 TextBox 控件来代替多个标记)。这种抽象为使用第三方提供的种类丰富的控件工具箱打开了方便之门。
对象模型
HTML 控件提供了以 HTML 为中心的对象模型。每种控件都包括一个属性集,可以使用该属性集来控制标记的属性。这个属性集使用了字符串名/值对,并且不是强类型的。
在使用 HTML 控件时,您的编程方式与使用传统的 ASP 进行编程十分类似。因而,HTML 控件提供了一条快捷的移植途径 - 可以通过添加一个 runat="server" 属性来将一个标记转变为一个服务器控件。
Web 控件提供了基于表单的、类似于 Visual Basic 的编程模式。它们也提供了属性集,但它们的主要目标在于提供一种格式丰富、类型安全且具有一致性的对象模型。每种 Web 控件都包含一组标准的属性,如 ForeColor、BackColor、Font 等。
这种对象模型还在像 Visual Studio .NET 这样的设计工具中提供了更丰富的设计时体验。
目标浏览器
HTML 控件不会自动检测请求页面的浏览器的能力,也不会修改它们提供的 HTML。在使用这组控件时,您要负责确保您的页面能同时在高级和低级浏览器上工作。
Web 控件能够自动对它们生成的结果进行调整,以确保输出结果在高级浏览器和低级浏览器上的工作同样出色。Web 控件还能够针对不同的浏览器提供不同的行为,从而充分发挥浏览器的潜力。例如,validation 控件还可以通过客户端的脚本来创建用于高级浏览器的具有高度交互性的页面。
你说的WEB控件指的就是ASP.NET控件吧? 比如<ASP:Textbox ... />
HTML控件是为了兼容性考虑的,如果你直接用ASP.NET独有的控件,这个网页就不能再其他程序中正常编辑,比如Dreamweaver,这样不方便网页设计师和程序开发人员的分工协作。还有一些Javascript对ASP.NET控件的兼容性也不太好;
另外ASP.net控件或多或少会消耗一些服务器资源,这些控件最终会经过服务器的转换成为HTML控件,这一转换是要消耗资源的,但是这种消耗微乎其微。
比如<ASP:Textbox>对应<input type="text>, <ASP:button>对应<input type="button">或者<input type="submit>, <ASP:Label>对应<Span>
所以一般情况下能用ASP.NET控件的尽量用ASP.NET控件,它的功能远比HTML控件强大。另外上传文件也可以用ASP.NET控件。
Dreamweaver是做设计用的,不是搞编程,而且他不只为ASP.NET服务,其他服务器端编程技术比如PHP,JSP都是以HTML控件为基础,不像ASP.NET设计了一套独有的控件。
还有“一个在服务器运行、一个在客户端运行”你这个理解是错误的,即使是HTML控件加上runat="server"也一样是在服务器端运行。
下面举例客户端和服务端的例子:
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br />
<asp:Label ID="Label1" runat="server" Text="你好" AssociatedControlID="TextBox1"></asp:Label>
<br />
<br />
<asp:Literal ID="Literal1" runat="server" Text="hello"></asp:Literal>
<br />v
<br />
<asp:Button ID="Button1" runat="server" CssClass="waring" Text="Button" />
<br />
<br />
<uc1:web ID="web1" runat="server" />
<input type="button" class="waring" value="按钮" />
<br />
<br />
<asp:TextBox ID="TextBox2" runat="server" Height="93px" TextMode="MultiLine"
Width="178px"></asp:TextBox>
<asp:TextBox ID="TextBox3" runat="server" ontextchanged="TextBox3_TextChanged" AutoPostBack="true"></asp:TextBox>
<br />
<asp:RadioButton ID="RadioButton2" runat="server" Text="男" />
<asp:RadioButton ID="RadioButton1" runat="server" Text="女" />
<body onload="myLoad()"> TextBox1 <form method="post" action="lianxi.aspx" id="form1"> <div class="aspNetHidden"> <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" /> <input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" /> <input type="hidden" name="__LASTFOCUS" id="__LASTFOCUS" value="" /> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE2MjU0NTI1MDlkGAEFHl9fQ29udHJvbHNSZXF1aXJlUG9zdEJhY2tLZXlfXxYEBQxSYWRpb0J1dHRvbjIFDFJhZGlvQnV0dG9uMgUMUmFkaW9CdXR0b24xBQxSYWRpb0J1dHRvbjE2nKtTr9vvS4U+UmahBsTEe7dwUHJwqTDqp4aJHi619A==" /> </div> <script type="text/javascript"> //<![CDATA[ var theForm = document.forms['form1']; if (!theForm) { theForm = document.form1; } function __doPostBack(eventTarget, eventArgument) { if (!theForm.onsubmit || (theForm.onsubmit() != false)) { theForm.__EVENTTARGET.value = eventTarget; theForm.__EVENTARGUMENT.value = eventArgument; theForm.submit(); } } //]]> </script> <script src="/WebResource.axd?d=ApAgQYBGiykPKfFOzxojabk2sPBTYmYU6HbRIS17zNU4JeMPDfuTo76xLwhMtVLBxtwRK1ivLS6XAYYoXfupcJPmMhKFwV3Mu98tavoFXeU1&t=634822608198385288" type="text/javascript"></script> <div class="aspNetHidden"> <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWCQLsr47zAQLs0bLrBgKM54rGBgLk8q69DwKk2orMCgLs0fbZDALs0Yq1BWZmmJXCyAGQldPUyRKDOMlxAsiDdf9uNcdx47QCfV/JhD8=" /> </div> <div> <br /> <br /> <span id="Lable1">你好:</span> <input name="TextBox1" type="text" id="TextBox1" /> <br /> <label for="TextBox1" id="Label1">你好</label> <br /> <br /> hello <br />v <br /> <input type="submit" name="Button1" value="Button" id="Button1" class="waring" /> <br /> <br /> <input name="web1$TextBox1" type="text" id="web1_TextBox1" /> <input type="submit" name="web1$Button1" value="Button" id="web1_Button1" /> <input type="button" class="waring" value="按钮" /> <br /> <br /> <textarea name="TextBox2" rows="2" cols="20" id="TextBox2" style="height:93px;width:178px;"> </textarea> <input name="TextBox3" type="text" onchange="javascript:setTimeout('__doPostBack(\'TextBox3\',\'\')', 0)" onkeypress="if (WebForm_TextBoxKeyHandler(event) == false) return false;" id="TextBox3" /> <br /> <input id="RadioButton2" type="radio" name="RadioButton2" value="RadioButton2" /><label for="RadioButton2">男</label> <input id="RadioButton1" type="radio" name="RadioButton1" value="RadioButton1" /><label for="RadioButton1">女</label> <br /> </div> </form> </body>这是对比。。