HtmlControls和Webcontrols命名空间的区别

时间:2021-01-27 01:31:12

HtmlControls(以下简称HC)是对大部分Html标签的复制,这些标签原来是什么样,经过服务器解释后的HC就是什么样。要使用HC,只需要在相应的html标签内加上runat=“server”属性。例如:

<table border=1 cellspacing=0 cellpadding=4 Runat="Server">
<td Runat="Server"> Table Data </td>

Web controls(以下简称WC)是微软在原有html标签的基础上重新设计整理并抽象后的一套控件,虽然它最终还是会解释成html标签,但是它是对现有html标签的一种更合理更有意义的逻辑表示。为什么要建立这种不同的抽象?例如<select>标签,如果要建立一个单选下拉列表框,则如下:

<select name="favColor">
<option> Red </option>
<option> Blue </option>
<option> Green </option>
</select>

如果要建立一个多选下拉列表框,则如下:

<select name="favColor" Size="3" MULTIPLE>
<option> Red </option>
<option> Blue </option>
<option> Green </option>
</select>

运行结果:

HtmlControls和Webcontrols命名空间的区别

可以看到,代码上很小的差别,显示出来的效果却差了很远。为了在代码中更清晰的表示这种差别,微软提供了两种<select>标签对应的WC:DropDownList 和 ListBox。

要使用WC,则按照如下形式:

<asp:TextBox id="username" Columns="30" Runat="Server"/>

另有一个例子说明了两者之间的区别

<%@ Page Language="C#" AutoEventWireup="true" %>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>HtmlButton使用示例</title>
<script language="javascript" type="text/javascript">
function onClientclick() {
alert("单击了按钮");
}
</script>
<script type="text/C#" runat="server">
protected void ButtonOnclick(object sender, EventArgs e)
{
Response.Write("服务器端处理按钮事件");
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<h3>HtmlButton使用示例</h3>
</div>
<button id ="button1" onclick="onClientclick()" >客户端按钮</button>
<br /><br />
<button id ="button2" runat="server" onserverclick="ButtonOnclick" >服务器端按钮</button>
</form>
</body>
</html>