之间的功能有何不同
<asp:Button id="button1" Text="Click me" runat="server" OnClick="submitEvent" />
和
<input type="button" id="button1" runat="server" value="Click me" />
runat =“server”属性的输入是否具有其他或有限的属性和方法?
谢谢!
答案 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控件,可以使用
进行servercontrolRUNAT = “服务器”。
第一个是第二个富含evants和metods ....
答案 4 :(得分:-1)
没有与此类控件关联的服务器事件,但您可以在代码隐藏中使用它来更改其属性。
答案 5 :(得分:-3)
你的第二个选择甚至可能不起作用。 runat =“server”将直接呈现给HTML输出,它将没有任何功能,只会破坏HTML验证。
input是一个只包含HTML属性的HTML元素,绝对没有任何类型的方法。