得到錯誤好老「未設置爲一個對象的實例對象引用」用戶控件的Web控件。縮短一切下來縮寫的緣故:訪問從用戶控制的構造
.ascx文件:
<asp:Label ID="lblcategory" runat="server" Text="Label"></asp:Label>
的.ascx.cs文件:
public partial class NewsArticleContainer : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
public NewsArticleContainer()
{
lblcategory.Text = "hello there!"; //null reference exception
}
}
然後,我把這個用戶使用web.config文件註冊後,將其控制到另一個頁面中。
.aspx文件:
<MyUC:NewsArticleContainer runat="server"/>
如果我把在Page_Load中的lblcategory.Text = "hello there!"
線和評論它的構造函數,它工作得很好。但是,稍後,我希望能夠以編程方式添加此用戶控件的實例(即mypanel.Controls.Add(new NewsArticleContainer(x))
,其中x是NewsArticle)。
我已經意識到需要使用LoadControl使用用戶控件來做到這一點---這不是問題。問題是我無法從用戶控件的構造函數訪問用戶控件中的Web控件。
寫這個時發生在我身上:在用戶控件的情況下,Page_Load是否相當於創建類的實例的傳統意義上的構造函數,以及傳統的構造函數不應該觸摸或修改UserControl的公共ClassName()?
您是否嘗試過在一個成員變量存儲的值,然後再成員變量分配給負載的label.text? – 2012-08-03 04:10:48