2011-02-16 50 views
0

我想從aspx頁面找到標籤控件。asp.net對象引用未設置錯誤

Label labelmessageupdate; 
      labelmessageupdate = (System.Web.UI.WebControls.Label)FindControl("updateMessage1"); 

如果我設置labelmessageupdate.Text ="something"

它返回對象引用異常。

和標籤控制在更新面板內可能是問題所在。

回答

0

只需檢查null。始終檢查空條件,以便它不會最終顯示對象引用錯誤。

if (labelmessageupdate != null) 
{ 
    labelmessageupdate.Text ="something" 
} 
+0

檢查它已經而非工作 – sam 2011-02-16 11:46:27

0

我認爲它不能夠找到標籤控件指定

if(FindControl("updateMessage1") is Label) 
{ 
    labelmessageupdate = FindControl("updateMessage1") as Label; 
    labelmessageupdate.Text="This shoould work if available"; 
} 
+0

它是沒有找到它似乎控制。我用上面的但沒有任何返回 – sam 2011-02-16 11:52:33

+0

標籤控制是在更新面板內可以這樣的問題? – sam 2011-02-16 11:55:16

0

試試這個,和你的控制試圖找到可能是在其他用戶的控制。

要使用

Label updateMessage = FindChildControl<Label>(base.Page, "updateMessage1"); 
if (updateMessage!=null) 
{ 
    updateMessage.Text = "new text"; 
} 

/// <summary>  
/// Similar to Control.FindControl, but recurses through child controls. 
/// Assumes that startingControl is NOT the control you are searching for. 
/// </summary> 
public static T FindChildControl<T>(Control startingControl, string id) where T : Control 
{ 
    T found = null; 

    foreach (Control activeControl in startingControl.Controls) 
    { 
     found = activeControl as T; 

     if (found == null || (string.Compare(id, found.ID, true) != 0)) 
     { 
      found = FindChildControl<T>(activeControl, id); 
     } 

     if (found != null) 
     { 
      break; 
     } 
    } 

    return found; 
} 
相關問題