这是aspx页面上的一个href
ASPX:
<a id="hrfReport" href="<%=sApplicationURL%>Reports.aspx">Report</a>
背后的代码:
sApplicationURL = "http://localhost/";
现在,如果我点击href页面重定向到报告页面,但如果我添加runat =“server”属性,那么href点击不起作用。实际上我想在特定条件下禁用它。
有谁知道怎么做?
答案 0 :(得分:4)
您无法在服务器标记中使用<%=someVal%>
构造。编译器基本上将其转换为Response.Write(someVal)
。
您可以使用<%#someVal%>
构造,但您需要DataBind()
该值。例如:
<强> ASPX:强>
<a id="hrfReport" href='<%#sApplicationURL + "Reports.aspx"%>' runat="server">Report</a>
背后的代码:
sApplicationURL = "http://localhost/";
hrfReport.DataBind();
...替代地
如果您有服务器控件,可以从后面的代码设置其属性,如下所示:
<强> ASPX:强>
<a id="hrfReport" runat="server">Report</a>
背后的代码:
hrfReport.HRef = sApplicationURL + "Reports.aspx";
答案 1 :(得分:0)
将它放在ASPX页面中。
<asp:HyperLink runat="server" ID="hrfReport" NavigateUrl="~/Reports.aspx" Text="Report"></asp:HyperLink>
答案 2 :(得分:0)
构建链接并在后面的代码中启用/禁用它:
Sub Page_Load()
HyperLink1.NavigateUrl = sApplicationURL & "Reports.aspx"
HyperLink1.Enabled = "false"
End Sub
然后只需在页面上添加您的链接:
<asp:HyperLink ID="HyperLink1" runat="server">Report</asp:HyperLink>
答案 3 :(得分:0)
不使用HyperLink控件,您可以使用href:
<a href="#" runat="server" id="lnkLogout" onserverclick="lnkLogout_Click"><i class="fa fa-sign-out fa-fw"></i> Logout</a>
代码背后:
Protected Sub lnkLogout_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lnkLogout.DataBinding
FormsAuthentication.SignOut()
HttpContext.Current.Session.Abandon()
Try
Response.Redirect("../Login/login.aspx")
Catch ex1 As ThreadAbortException
Thread.ResetAbort()
End Try
End Sub