按钮单击事件背后的 C# 代码,ASP.NET

新手上路,请多包涵

我正在使用同事在 .aspx 中提供的 HTML,我需要在 .aspx.cs(C#) 中编写他使用 HTML 创建的按钮的功能。我正在处理的代码如下:

 <div>
    <button style="padding: 10px; margin-bottom: 10px;" class="w3-round w3-blue">Ship</button>
    <button style="padding: 10px; margin-bottom: 10px;" class="w3-round w3-blue">Rate</button>
</div>

我是 HTML 新手,但在查看类似问题的解决方案时,我经常看到功能按钮的 HTML 代码看起来更像

<button type="submit" runat="server" id="btnLogin" class="button" onclick="btnLogin_Click();">

有时与

<asp:

一开始。我尝试简单地将 runat 和 onclick 字段添加到与后面 aspx.cs 代码中的 C# 方法相对应的 HTML 中,但我无法使按钮单击实际触发后面代码中的方法。我假设如果我将 onclick 之后的名称的方法添加到 C# aspx.cs 代码中,那么它只会在单击按钮时执行此操作,但我显然错了。

我可以在不更改提供给我的 HTML 的情况下在后面的代码中编写按钮的功能吗?或者我必须先改变 HTML,如果是这样怎么做?

原文由 KMcL 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 849
2 个回答

您可能可以通过将 runat="server" 属性添加到您的按钮而侥幸,但我从未尝试过,坦率地说,使用适当的 Web 控件将是最好的方法。

替换它们根本不应该改变页面的外观和感觉。只需添加 CssClass="xxx" 以应用 css(如果有),否则无论如何它们都会呈现为标准 html 元素。

您的标记应如下所示:

 <asp:Button runat="server" id="btnLogin" Text="Log In" OnClick="btnLogin_Click" />

代码中匹配的事件处理程序如下所示:

 protected void btnLogin_Click(object sender, EventArgs e)
{
    // Here's where you do stuff.
}

原文由 Ortund 发布,翻译遵循 CC BY-SA 4.0 许可协议

你需要更换

onclick="btnLogin_Click();"

onclick="btnLogin_Click"

因为 asp.net 按钮的 onClick 属性需要包含它在 aspx.cs 文件中调用的函数的名称,而不是实际调用。

原文由 Plargato 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题