0

我编写了代码来从内容页面启用和禁用母版页上的超链接。一切正常,调用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;
    }
4

1 回答 1

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;
于 2012-08-28T06:22:30.507 回答