1

我正在研究 TreeView 并且必须执行 renderControl() 方法。当它触发时,它会给出一个异常:InvalidOperationException: Page cannot be 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);
}

您认为这可能是因为作者中当前有内容吗?我正在考虑将其清除或刷新到字符串然后重建它。我不确定它会附加到当前缓冲区

如果您需要更多信息,请告诉我

4

1 回答 1

1

您尝试执行的操作看起来目前不受支持。虽然这个问题是关于 Asp.NETColorPicker控件的,但我相信它也适用于RadTreeView控件。

通过Telerik 支持中心

问:有什么方法可以让 ColorPicker 在没有页面的情况下呈现?我必须在我直接在 aspx 中而不是 aspx.cs 中编写的情况下添加它。此外,我可能需要从通用处理程序 ashx 执行此操作。这可能吗?

答:控件需要添加到页面中,无论是在其标记中,还是在其代码隐藏中。您可以尝试使用 RenderControl 方法并写入 Response.OutputStream,但这不是受支持的方案,并且无法保证成功,因此我建议不要进行此类尝试。

问候,
马林
Telerik 团队

于 2012-07-12T17:54:01.610 回答