asp.net:runat =“server”和服务器控件之间的区别

时间:2009-05-18 11:19:22

标签: asp.net runatserver

之间的功能有何不同
<asp:Button id="button1" Text="Click me" runat="server" OnClick="submitEvent" />

<input type="button" id="button1" runat="server" value="Click me" />

runat =“server”属性的输入是否具有其他或有限的属性和方法?

谢谢!

6 个答案:

答案 0 :(得分:20)

第一个创建System.Web.UI.WebControls.Button,而第二个创建System.Web.UI.HtmlControls.HtmlInputButton

两者都是服务器控件,但WebControls命名空间中的控件通常比HtmlControls命名空间中的控件具有更多功能。通常他们会在ViewState中放置一些数据来跟踪他们的状态,并且他们有服务器端回发事件。

HtmlControls命名空间中的每个控件都与HTML元素完全对应,而WebControls命名空间中的控件可能会有不同的呈现方式,具体取决于请求页面的浏览器可以支持的内容。

答案 1 :(得分:1)

<asp:Button runat="server".../>表示的按钮将转换为具有丰富状态模型和不同属性和方法的Web服务器控件,这些属性和方法在现实世界中具有更清晰的表示,如Button.Text =“Click Me”。

<input type="button" runat="server"..../>表示的按钮将转换为由HtmlInputButton表示的html服务器控件;与有限的属性,方法和事件。大多数属性类似于像Button.Value =“Click Me”这样的html等价物。

请注意,标记页面中的元素在使用之前会进行预处理/编译,并将转换为类表示,其中每个元素都由控件表示。您可以访问由后面的代码中的runat =“server”标记标识的服务器端控件,因为它们将具有正确的匹配服务器控件(web / html),其他静态内容包括<input type="button.../>标记,但不包含runat =“server”将表示为LiteralControl。

答案 2 :(得分:0)

前一行是ASP.NET,后者是简单的XHTML。

前者在服务器端被解析和解释,之后生成HTML代码,这几乎与您的第二个示例相对应。 ASP.NET按钮实际上只是对HTML输入按钮功能的轻量级包装,应该在需要处理服务器端{(1)}事件(或一般情况下的任何事件)的任何地方使用,并且通常是要走的路,因为你让ASP.NET在你的页面上抽象出一个按钮的想法。

答案 3 :(得分:0)

两个控件的功能相同,区别在于第一个是.net控件,第二个是html控件,可以使用

进行servercontrol

RUNAT = “服务器”。

第一个是第二个富含evants和metods ....

答案 4 :(得分:-1)

没有与此类控件关联的服务器事件,但您可以在代码隐藏中使用它来更改其属性。

答案 5 :(得分:-3)

你的第二个选择甚至可能不起作用。 runat =“server”将直接呈现给HTML输出,它将没有任何功能,只会破坏HTML验证。

input是一个只包含HTML属性的HTML元素,绝对没有任何类型的方法。