如何编写ASPX中的< a href =" ...标记以调用函数后面的简单代码?
我继承了一些代码。我最初没有写这个,但我试图修改它。
在steppayment.aspx文件中有很多"< a href ..."标记为整个URL或另一个aspx文件。
但是如果我只想在代码隐藏中调用一个函数,steppayment.aspx.cs呢?
在aspx文件中,steppayment.aspx,我有这行代码:
<u><b><a href="fsModifyVisualContentonPaypal();" >Click here</a></b></u> now to open the PayPal payment window.
在后面的代码中,steppayment.aspx.cs,我有这行代码:
protected void fsModifyVisualContentonPaypal()
{
fsCreditCard.Visible = false;
fsAfterCreditCard.Visible = true;
}
我在这个功能中有断点。它永远不会到达这里。当用户点击&#34;点击此处&#34;它会引发错误。
答案 0 :(得分:2)
使用LinkButton控件而不是基本的HTML锚标记
<asp:LinkButton OnClick="fsModifyVisualContentonPaypal" runat="server" Text="Click here" />
要调用javascript之类的客户端方法,您可以使用OnClientClick
。您需要在MSDN上查看the documentation的LinkButton
答案 1 :(得分:2)
如果您希望它在回发上工作,请尝试使用ASP.NET LinkButton控件。
这是来自记忆,但它会是这样的:
<u><b><asp:LinkButton OnClick="fsModifyVisualContentonPaypal" runat="server">Click here</asp:LinkButton></b></u>
如果您希望它在没有回发的情况下工作,那么您将进入Ajax区域或纯JavaScript。 (或者,您可以查找ASP.NET UpdatePanel。)
所有这一切都假设您使用的是ASP.NET WebForms。如果您正在使用MVC,那就是另一个主题。
答案 2 :(得分:1)
这两个答案都有效。您需要更改事件方法签名,如下所示:
protected void fsModifyVisualContentonPaypal(object sender, EventArgs e)
{
fsCreditCard.Visible = false;
fsAfterCreditCard.Visible = true;
}
您的链接按钮应如下所示(两个答案都有说明):
<u><b><asp:LinkButton OnClick="fsModifyVisualContentonPaypal" runat="server">Click here</asp:LinkButton></b></u>