我编写了代码来启用和禁用内容页面上母版页的超链接。在调用DisableHyperlinkInMasterPage
方法后,每个东西都运行正常,超链接也被禁用。当我调用EnableHyperlinkInMasterPage
方法时,超链接仍无效。如果我们要离开该页面,那么我发现超链接开始工作。我的问题是在调用EnableHyperlinkInMasterPage
方法之后,在没有离开页面的情况下,超链接仍然被禁用且无法正常工作,并且在离开页面后它已启用。请帮我解决这个问题。我调试代码,但没有发现EnableHyperlinkInMasterPage
方法有任何错误。
private void DisableHyperlinkInMasterPage()
{
AssociateMaster mymaster = (AssociateMaster)Page.Master;
HyperLink home = (HyperLink)mymaster.FindControl("Home");
home.Enabled = false;
HyperLink profile = (HyperLink)mymaster.FindControl("ProfileLink");
profile.Enabled = false;
HyperLink report = (HyperLink)mymaster.FindControl("Report");
report.Enabled = false;
HyperLink signout = (HyperLink)mymaster.FindControl("SignOut");
signout.Enabled = false;
}
private void EnableHyperlinkInMasterPage()
{
AssociateMaster mymaster = (AssociateMaster)Page.Master;
HyperLink home = (HyperLink)mymaster.FindControl("Home");
home.Enabled = true;
HyperLink profile = (HyperLink)mymaster.FindControl("ProfileLink");
profile.Enabled = true;
HyperLink report = (HyperLink)mymaster.FindControl("Report");
report.Enabled = true;
HyperLink signout = (HyperLink)mymaster.FindControl("SignOut");
signout.Enabled = true;
}
答案 0 :(得分:1)
尝试使用属性启用和禁用链接。并尝试尽可能少地使用FindControl。假设您的MasterPage中有一个名为lnkTest的链接。将此代码写在母版页中:
public bool TestLinkEnabled
{
get { return lnkTest.Enabled; }
set {lnkTest.Enabled = value; }
}
然后在您的内容页面中将此行添加到您的页面后:
<%@ MasterType VirtualPath="~/MasterPage.master" %>
使用以下方式启用和禁用此链接:
Master.TestLinkEnabled = true;
Master.TestLinkEnabled = false;