我正在使用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>
答案 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的LinkButton控件和样式。我们过去常常为某个项目这样做。对我们的客户来说非常棒。
时感兴趣的属性答案 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?