我是asp.net用于制作网站的新手。所以我在理解以下内容之间的区别时遇到了一些麻烦。 asp:Button和输入按钮有什么区别?
代码1
aspx代码
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
Codebehind
protected void Button1_Click(object sender, EventArgs e)
{
//Do somthing
}
代码2
aspx代码
<input id="Submit1" type="submit" value="submit" onclick="return Submit1_onclick()" />
<script language="javascript" type="text/javascript">
// <![CDATA[
function Submit1_onclick() {
//Do somthing
}
// ]]>
</script>
答案 0 :(得分:21)
第一个代码是服务器端代码。当您在webform中添加标记asp:button
时,asp.net将为您呈现input type="button"
,当您单击此按钮时,它会向同一页面提交帖子(这称为{{ 1}})并将处理与此按钮关联的生命周期和asp.net事件。这同样适用于每个服务器控件,例如postback
(呈现TextBoxes
),input type='text'
(呈现div),Panels
(呈现Checkboxes
),{{ 1}}(渲染input type='checkbox'
)等......
在第二个代码中,您拥有第一个将呈现的代码(Labels
),但与客户端javascript中的事件相关联。
您还可以在标记spans
中关联客户端事件,查看input type = 'button'
属性。
答案 1 :(得分:5)
第一个是服务器端控件,事件处理程序在C#中的服务器上执行。单击该按钮将导致回发,表单中的所有信息将发布到服务器进行处理,包括调用click事件处理程序。
第二个是完全客户端,事件处理程序在JavaScript中以浏览器执行。
答案 2 :(得分:5)
asp:Button
是一个asp.net服务器控件,用于在服务器端触发事件。
<input id="Submit1" type="submit"
是提交类型的客户端按钮, 但它也可以作为服务器端按钮添加
runat="server"
和onserverclick="eventname"
答案 3 :(得分:3)
根据我的理解,你必须记住,有一个将执行的cliend side代码,例如浏览器中的javascript,以及将在服务器上执行的asp / c#代码。
所以有这个控制权:
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
Button1_Click将在服务器上执行,另一方面,在微软世界中它是IIS 你只有一个纯粹的html控件,你可以为click事件连接一个javascript函数
<input id="Submit1" type="submit" value="submit" onclick="return Submit1_onclick()" />
因此服务器端与此部分无关,此代码将在您的计算机上,在您的浏览器中执行。
答案 4 :(得分:1)
一个我的功能:así:
1.- Enelbotón:
<input type="submit" id="btnAccept" value="Log In" runat="server" onserverclick="btnAccept_Click">
2.- En el codebehind:
Protected Sub btnAccept_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)