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 に答える