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

时间:2011-11-23 14:41:17

标签: asp.net forms button

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

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

<asp:Button ID="LoginButton" runat="server" Text="Login" 
    onclick="LoginButton_Click" />

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

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

<button type="submit" class="positive" onclick ="...">
    <img src="/icons/tick.png" alt=""/> 
    Login
</button>

我见过另一个讨论Difference between asp:button and html's button的问题,所以我理解<button>元素不是替代品,但我想知道asp:button是否可以替换仍然调用LoginButton_Click C#代码?

修改
虽然我使用ASP但我不介意在必要时使用一些客户端javascript。

我看到的那些让我想到这个的按钮在这里找到:Rediscovering the Button Element

编辑2: 我使用LinkButton asp控件尝试了answer from XIII,并且可以正常工作,按照我的需要渲染按钮,点击时激活C#

<asp:LinkButton ID="LoginBtn" CssClass="button positive"
        OnClick="LoginButton_Click" runat="server">
    <img src="/icons/tick.png" alt=""/> 
    Login
</asp:LinkButton>

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

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

5 个答案:

答案 0 :(得分:2)

你的问题的答案:

  

如果可以替换asp:按钮并仍然调用LoginButton_Click C#代码?

是的。如果您有一个按钮,如:

<button type="submit" id="submit" class="positive" runat="server">Submit</button>

您需要设置的属性是不是 onclick,而是onserverclick。你也可以这样做:

protected override OnInit(EventArgs e)
{
    submit.ServerClick += new EventHandler(submit_ServerClick);
}

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

答案 1 :(得分:1)

您可以通过CSS的{​​{1}}属性设置cssClass课程。不过,您可以将<asp:Button/>runat="server"属性设置为onserverclick="LoginButton_Click"

答案 2 :(得分:1)

另一种方法是使用完全使用CSS的LinkBut​​ton控件和样式。我们过去常常为某个项目这样做。对我们的客户来说非常棒。

CssClass

时感兴趣的属性

答案 3 :(得分:0)

如果需要,可以使用HTML按钮,并学习如何使用正确的参数调用__doPostBack()方法。 Asp.Net按钮和HTML按钮在客户端呈现它们的方式几乎相同。

答案 4 :(得分:0)

正如已经发布的那样,您可以设置由asp:button呈现的HTML样式或使用其他asp控件。您的asp:button将呈现为<input type="submit">,其CSS选项可能比<button>标记更有限。

通过一些谷歌搜索,我认为有可能获得<button>标记,但它看起来像一个非常重要的练习,请参阅How can I use the button tag with ASP.NET?