我正在使用TreeView并且必须执行renderControl()方法。当它触发时,它会给出一个异常:InvalidOperationException:Page不能为null。请确保在ASP.NET请求的上下文中执行此操作。
我会在评论错误的位置时有以下代码:
try{
StringWriter writer = new StringWriter();
HtmlTextWriter tOut = new HtmlTextWriter(writer);
ddFieldFilter.RenderControl(tOut); //This doesnt error.
tvFields = new RadTreeView();
tvFields.NodeExpand += new RadTreeViewEventHandler(tvFields_NodeExpand);
tvFields.NodeClick += new RadTreeViewEventHandler(tvFields_NodeClick);
startTree();
tvFields.RenderControl(tOut); //Errors here.
String context = writer.toString();
}catch(Exception e){
throw new Exception("Error Loading Page: " + e.Message);
}
你认为这可能是因为作者目前有内容吗?我正在考虑清除或将其刷新到字符串然后重建它。我不确定它会附加到当前缓冲区
如果您需要其他信息,请与我们联系
答案 0 :(得分:1)
您尝试做的事情看起来并不像目前支持的那样。虽然这个问题与Asp.NET ColorPicker
控件有关,但我相信它也适用于RadTreeView
控件。
问: 有没有办法让ColorPicker在没有页面的情况下渲染?一世 不得不在我直接在aspx中编写的情况下添加它 aspx.cs.此外,我可能需要从通用处理程序ashx执行此操作。是 这可能吗?
A: 需要将控件添加到页面中,无论是在其标记中还是在 它的代码隐藏。您可以尝试使用RenderControl方法并写入 Response.OutputStream,但这不是受支持的场景 成功无法得到保证,所以我建议不要这样做。
的问候,
马林
Telerik团队