这两者之间的功能区别是什么?
<asp:Button id="button1" Text="Click me" runat="server" OnClick="submitEvent" />
和
<input type="button" id="button1" runat="server" value="Click me" />
带有runat="server"属性的输入框是否具有其他或受限制的属性和方法?
谢谢!
这两者之间的功能区别是什么?
<asp:Button id="button1" Text="Click me" runat="server" OnClick="submitEvent" />
和
<input type="button" id="button1" runat="server" value="Click me" />
带有runat="server"属性的输入框是否具有其他或受限制的属性和方法?
谢谢!
System.Web.UI.WebControls.Button
,而第二个创建的是System.Web.UI.HtmlControls.HtmlInputButton
。WebControls
命名空间中的控件通常比HtmlControls
命名空间中的控件具有更多的功能。通常它们会将一些数据放入ViewState
中以跟踪它们的状态,并且它们有服务器端回发事件。
HtmlControls
命名空间中的每个控件都对应于一个HTML元素,而WebControls
命名空间中的控件可能根据请求页面的浏览器支持情况以不同的方式呈现。使用<asp:Button runat="server".../>
表示的按钮将被转换为具有丰富状态模型、不同属性和方法的 Web 服务器控件,其在实际应用中的表示更加清晰,例如 Button.Text = "Click Me"。
使用<input type="button" runat="server"..../>
表示的按钮将被转换为 HtmlInputButton 表示的 html 服务器控件;具有有限的属性、方法和事件。大多数属性类似于 HTML 等效项,如 Button.Value="Click Me"。
请注意,在使用前,标记页中的元素会被预处理/编译,并将转换为类表示形式,其中每个元素都由控件表示。您可以从代码后台访问通过 runat="server" 标记标识的服务器端控件,因为它们将具有正确匹配的服务器控件(Web/HTML),其他静态内容,包括没有 runat="server" 的 <input type="button.../>
标记将表示为 LiteralControl。
前一行是ASP.NET,后者是简单的XHTML。
前者在服务器端进行解析和解释,之后生成HTML代码,这基本上对应于您的第二个示例。 ASP.NET按钮实际上只是轻量级包装器,可在需要在服务器端处理Click
事件(或通常情况下任何事件)的任何位置使用,并且通常是最好的选择,因为您可以让ASP.NET为您抽象页面上的按钮的概念。
这两个控件的功能是相同的,区别在于第一个是.net控件,第二个是html控件,可以通过使用runat="server"使其成为服务器控件。
第一个控件比第二个控件更丰富的事件和方法...
这种控件没有与之关联的服务器事件,但您可以在代码后台中使用它来更改其属性。