我有一个简单asp.net用户控制:asp.net用户控制元素为空
<%@ Control Language="C#" AutoEventWireup="true"
CodeBehind="QueryDefinitionItem.ascx.cs"
Inherits="xxx.UserControls.QueryDefinitionItem" %>
<link href="../Styles/Site.css" rel="stylesheet" type="text/css" />
<div class="title">
<h1 id="TextField" runat="server"></h1>
</div>
代码后面:
public partial class QueryDefinitionItem : System.Web.UI.UserControl
{
private string m_text;
protected void Page_Load(object sender, EventArgs e)
{
TextField.InnerText = m_text;
}
public void SetText(string text)
{
m_text = text;
}
}
我使用LoadControl加载编程一个实例:
protected void Page_Load(object sender, EventArgs e)
{
var control = (QueryDefinitionItem)LoadControl(typeof (QueryDefinitionItem),null);
control.SetText("test2");
itemsPanel.Controls.Add(control);}
然后我使用SetText函数来设置文本,并且一旦页面加载被触发,我得到一个NullReferenceException,它表示Tex tField为空...
我无法弄清楚为什么。
在什么时候,你将控制动态? – 2012-01-03 09:34:28
@RichardFriend页面的页面加载事件 – 2012-01-03 09:41:08