2012-08-28 83 views
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; 
    } 
+0

您的代碼:

<%@ MasterType VirtualPath="~/MasterPage.master" %> 

使用啓用和禁用此鏈接在EnableHyperlinkInMasterPage()裏面看起來沒問題。在頁面生命週期的哪個點你調用這個方法? –

+0

你得到一個NullRefernceException?爲什麼不在MasterPage本身而不是每個內容頁面中提供(公共)方法? –

+0

@Edwin de Koning-我在加載Content頁面後調用此方法。 –

回答

1

嘗試使用屬性來啓用和禁用鏈接。儘可能少地嘗試使用FindControl。考慮你的MasterPage中有一個名爲lnkTest的鏈接。在你的母版頁寫這樣的代碼:

public bool TestLinkEnabled 
{ 
     get { return lnkTest.Enabled; } 
     set {lnkTest.Enabled = value; } 
} 
在您的內容頁面

然後添加這一行到您的網頁後:

Master.TestLinkEnabled = true; 
    Master.TestLinkEnabled = false;