如何解决ASP.Net自定义控件呈现错误
| 我正在尝试创建一个自定义控件,并且render方法如下所示。 我在bulletList.RenderControl(Writer);上收到一个“对象引用未设置为对象的实例”错误;线。 有任何想法吗? protected override void Render(HtmlTextWriter Writer)
{
if (TermSetList != null && TermSetList.Count > 0)
{
BulletedList bulletList = new BulletedList();
bulletList.Click += new BulletedListEventHandler(BulletListItem_Click);
bulletList.DisplayMode = BulletedListDisplayMode.LinkButton;
bulletList.CssClass = \"tabs\";
foreach (KeyValuePair<String,String> item in TermSetList)
{
ListItem listItem = new ListItem();
listItem.Text = item.Key;
listItem.Value = item.Value;
bulletList.Items.Add(listItem);
}
if (!this.Page.IsPostBack)
{
bulletList.Items[0].Selected = true;
}
bulletList.RenderControl(Writer);
base.Render(Writer);
}
}
解决方法
通常,您不想在渲染过程中添加控件。您当前的操作方式将确保您的点击处理程序永远不会被调用。
我对为什么会收到错误的猜测是,该控件尚未添加到控件集合中。
我的建议是将逻辑移至更早的事件,也许是onload,那么您就不必重写Render方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。