是否可以用HTML元素替换asp:按钮

Ton*_*ony 5 forms asp.net button

我正在使用asp表单,并想知道是否可以用使用CSS样式化的HTML元素替换标准按钮.

我的登录页面使用标准按钮

<asp:Button ID="LoginButton" runat="server" Text="Login" 
    onclick="LoginButton_Click" />
Run Code Online (Sandbox Code Playgroud)

链接到执行登录检查的代码(C#).

我已经看到一些使用HTML <button>元素实现的漂亮按钮,并使用CSS设置样式,可以具有图像和滚动突出显示等功能.基本HTML看起来像这样

<button type="submit" class="positive" onclick ="...">
    <img src="/icons/tick.png" alt=""/> 
    Login
</button>
Run Code Online (Sandbox Code Playgroud)

我已经看到另一个问题讨论asp:button和html按钮之间区别所以我理解该<button>元素不是替代品,但我想知道是否asp:button可以替换它并仍然调用LoginButton_ClickC#代码?

编辑:
虽然我使用ASP我不介意使用一些客户端javascript如果有必要.

我看到的那个让我想到这个的按钮在这里找到:重新发现按钮元素

编辑2: 我尝试使用asp控件从XIII答案LinkButton,这是有效的,按我想要的方式呈现按钮,点击时激活C#

<asp:LinkButton ID="LoginBtn" CssClass="button positive"
        OnClick="LoginButton_Click" runat="server">
    <img src="/icons/tick.png" alt=""/> 
    Login
</asp:LinkButton>
Run Code Online (Sandbox Code Playgroud)

Javascript被插入到页面中(如Curt所述),这对我来说不是问题,但可能适用于其他人; 但由于asp:loginview与表单身份验证相关的其他控件已经需要javascript,我不确定这是解决方案的问题.

我决定接受jwiscarson的回答,因为这是一个更清洁的实现,尽管我认为,<button>可以直接替代<asp:button>

jwh*_*ron 2

你的问题的答案:

是否可以替换 asp:button 并且仍然调用后面的 LoginButton_Click C# 代码?

是是的。如果你有一个像这样的按钮:

<button type="submit" id="submit" class="positive" runat="server">Submit</button>
Run Code Online (Sandbox Code Playgroud)

您需要设置的属性不是 onclick,而是onserverclick。您还可以执行以下操作:

protected override OnInit(EventArgs e)
{
    submit.ServerClick += new EventHandler(submit_ServerClick);
}
Run Code Online (Sandbox Code Playgroud)

如果您需要在该按钮上设置样式,我认为解决该问题的最佳方法是通过 CSS 类,就像您在示例中所使用的那样。