2013-06-24 38 views
0

我想更改母版頁上的標籤以顯示確認說明。C#在母版頁上設置label.text不會更改文本

我沒有得到任何錯誤,所有值都如預期在調試,但文本不是屏幕上更改。我看了很多例子,並嘗試了幾種方法,但似乎沒有任何效果。有任何想法嗎?

ASPX:

<%@ MasterType VirtualPath="~/SLA.Master" %> 

母版頁 - SLA.Master.cs:

{ 
    public partial class SLA : System.Web.UI.MasterPage 
    { 

     public void SetMyMessage(string MyMessage) 
     { 
      MyMessageDisplay.Text = MyMessage; 
     } 

內容頁 - SLAEdit.aspx.cs:

protected void FormView1_ItemDeleted(Object sender, FormViewDeletedEventArgs e) 
    { 
     if (e.Exception == null) 
     { 

      Master.SetMyMessage("Service Deleted"); 
+0

你看着辦吧?我遇到了同樣的問題,即在網格的ItemCommand事件中更新主頁面標籤的文本DOES更新代碼中文本屬性的值,但實際上並未呈現。 –

+0

我有完全相同的情況,事實證明,因爲我使用Telerik Ajax對我的Label控件進行了Ajax化,所以我不得不將我的標籤控件從母版頁添加到我的Ajax設置中,以便顯示更新後的值。 –

回答

0

試試這個:

(Master as SLA).SetMyMessage("Service Deleted"); 
+0

感謝Troy,但是不過,它看起來仍然在調試,但不會改變屏幕上的文本。 – DLL

+0

您是否在母版頁的Page_Load事件中更改該標籤的文本?在過去的一件事情是,內容頁面上的Page_Load事件發生在母版頁的Page_Load事件之前,所以如果在母版頁的Page_Load事件中執行了類似SetMyMessage(String.Empty)的事實,將覆蓋在內容頁面加載中所做的任何更改。 –

+0

實際上,它是由刪除觸發的事件。 – DLL

0

試試這個:

(Master.FindControl("MyMessageDisplay") as TextBox).Text = "Service Deleted"; 
+0

謝謝卡爾,但同樣的問題。 – DLL

+0

嗯,你可以發佈更多的代碼嗎?因爲我可以使用我提供的示例運行它。內容頁面的Page_Load中發生了什麼? –

+0

我在主頁面或內容頁面的Page_Load中完全沒有代碼。 – DLL

0

我希望這將工作:

protected void Page_Load(object sender, EventArgs e) 
{ 
    Label lbl_TitlePage = Page.Master.FindControl("lbl_TitlePage") as Label; 
    lbl_TitlePage.Text = "THE KEY QUESTIONS"; 
} 
相關問題