首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HtmlAnchor.RenderControl引发NullReference异常

HtmlAnchor.RenderControl引发NullReference异常
EN

Stack Overflow用户
提问于 2012-10-23 00:00:28
回答 1查看 555关注 0票数 0

我这里有一段代码

代码语言:javascript
复制
   var anchor = new HtmlAnchor {HRef = temp, InnerText = this.LinkDescription};
            anchor.Attributes.Add("class", "navActive back");
            anchor.ServerClick += new EventHandler(AnchorServerClick);
            writer.Write("<div id=\"leftnav\"><ul><li>");
            anchor.RenderControl(writer);
            writer.Write("</li></ul></div>");

在自定义web控件内。我在anchor.RenderControl得到了一个nullReference异常,为什么?我调试了上面的代码,编写器也不是空的,锚也是。那是怎么回事?谢谢!

编辑:我添加堆栈跟踪是为了调试

代码语言:javascript
复制
[NullReferenceException: Object reference not set to an instance of an object.]
System.Web.UI.HtmlControls.HtmlAnchor.GetPostBackOptions() +107
System.Web.UI.HtmlControls.HtmlAnchor.RenderAttributes(HtmlTextWriter writer) +10975634
System.Web.UI.HtmlControls.HtmlControl.RenderBeginTag(HtmlTextWriter writer) +56
System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer) +26
CER.Portal.Dashboard.Controls.BackLink.Render(HtmlTextWriter writer) +1151
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-23 01:05:08

查看GetPostBackOptions方法的代码,您需要将page属性设置为当前页面,或者将CausesValidation属性设置为false:

代码语言:javascript
复制
private PostBackOptions GetPostBackOptions()
{
   PostBackOptions options = new PostBackOptions(this, string.Empty) 
   {
      RequiresJavaScriptProtocol = true
   };
   if (this.CausesValidation && (this.Page.GetValidators(this.ValidationGroup).Count > 0))
   {
      options.PerformValidation = true;
      options.ValidationGroup = this.ValidationGroup;
   }
   return options;
}

在RenderControl调用前添加anchor.Page = this.Page或anchor.CausesValidation = false。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13015212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档