【问题标题】:Difference between button and asp:button onclickbutton和asp的区别:button onclick
【发布时间】:2021-03-31 02:30:42
【问题描述】:

我是在 asp.net 中开发网站的新手。

asp:Button 和输入按钮有什么区别?

代码 1
aspx 代码

<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />  

代码隐藏

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>

【问题讨论】:

    标签: asp.net aspbutton


    【解决方案1】:

    第一个代码是服务器端代码。当您在 Web 表单中添加标签 asp:button 时,asp.net 将为您呈现一个 input type="button",当您单击此按钮时,它会将帖子提交到同一页面(这称为 postback)并将处理与此按钮关联的生命周期和 asp.net 事件。这同样适用于每个服务器控件,例如TextBoxes(渲染input type='text')、Panels(渲染div)、Checkboxes(渲染input type='checkbox')、Labels(渲染spans)等。 .

    在第二个代码中,您拥有第一个将呈现的代码(input type = 'button'),但与客户端 javascript 中的事件相关联。

    您还可以在标签asp:button 中关联客户端事件,查看OnClientClick 属性。

    【讨论】:

    • 你的回答让我明白了很多。谢谢。我对这方面的知识知之甚少。如果你能给我提供很好的学习教程,我真的很乐意。
    • 你可以搜索一些关于 asp.net 生命周期msdn.microsoft.com/en-us/library/ms178472(v=vs.100).aspx 和服务器控制的东西,回发是如何工作的。你必须记住,每一种网络技术都会呈现网络标准,因为这是浏览器所理解的。现在如果你开始做web开发,我建议你先学习htmlcssjavascript等web标准。
    • 感谢您的指导。 :)
    【解决方案2】:

    第一个是服务器端控件,事件处理程序在C#的服务器上执行。单击按钮将导致回发,并且表单中的所有信息都将被发布到服务器进行处理,包括对单击事件处理程序的调用。

    第二个完全是客户端,事件处理程序在浏览器中用JavaScript执行。

    【讨论】:

    • 也就是说根据第一个示例代码,一旦用户点击按钮,从提交到服务器。也就是说action页面是同一个页面?
    【解决方案3】:

    asp:Button 是一个在服务器端触发事件的 asp.net 服务器控件。

    <input id="Submit1" type="submit"
    

    是提交类型的客户端按钮, 但它也可以通过添加来充当服务器端按钮

    runat="server"onserverclick="eventname"

    【讨论】:

    • 在服务器端执行onclick事件后,是否会将句柄返回给页面?
    • 你在说哪个按钮?
    • 对于没有onclick事件的inout类型提交是客户端事件而不是服务器端
    • 服务器端按钮上的 onclick 将在服务器上运行,并将遍历页面中和 !IsPostBack 之外的页面生命周期事件,请在此处阅读有关页面生命周期的一些信息:@ 987654321@
    • 谢谢。如果我的问题太愚蠢了,请见谅。
    【解决方案4】:

    据我了解,您必须牢记将执行的客户端代码,例如浏览器中的 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()" /> 
    

    所以服务器端与这部分无关,这段代码将在你的机器上,在你的浏览器中执行。

    【讨论】:

    • 根据第一个代码,如果我为表单放置actionmethod 属性,它会起作用吗?
    【解决方案5】:

    A mi me funcionó así:

    1.- En el botón:

     <input type="submit" id="btnAccept" value="Log In" runat="server" onserverclick="btnAccept_Click">
    

    2.- En el 代码隐藏:

    Protected Sub btnAccept_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-30
      • 2017-07-21
      • 1970-01-01
      • 2021-06-07
      • 2010-11-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多