从内容页面启用母版页中的超链接时发出问题

时间:2012-08-28 05:45:47

标签: c# asp.net

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

1 个答案:

答案 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;