无页面渲染控件我目前使用的是内部框架。这一切都很好,但框架不使用aspx页面,它使用Response.Write来呈现页面。我遇到的问题是我需要在页面上使用rad控件,所以我需要做的就是生成rad控件以使HTML代码转储到页面上。是否可以?我试过创建一个Page对象来让它工作,但它不起作用。好像页面被调用的时候,是在做一些其他的初始化。我还尝试将HttpContext.Current.Handler转换为页面,但这没有用,因为他们使用另一个类而不是System.Web.UI.Page来处理请求。在这一点上,我不确定还能尝试什么。如果能模仿Page来创建类就好了。有谁知道正确创建和初始化Page对象的确切步骤?希望这是有道理的……如果没有,我会尽量让它更容易理解。谢谢!更新只是想给你我正在玩的代码。希望这会告诉您我正在尝试做什么:这有效:HtmlFormf=newHtmlForm();RadEditorre=newRadEditor();f.ID="form1";这个.Page.Controls.Add(f);re.ID="rdControl";StringBuildersb=newStringBuilder();StringWritertw=newStringWriter(sb);HtmlTextWriterhw=newHtmlTextWriter(tw);//Pagep=newPage();//(Page)HttpContext.Current.Handler;//HtmlFormf=newHtmlForm();//p.Controls.Add(f);f.Controls.Add(re);这不起作用:HtmlFormf=newHtmlForm();RadEditorre=newRadEditor();f.ID="form1";页面p=newPage();p.Controls.Add(f);re.ID="rdControl";StringBuildersb=newStringBuilder();StringWritertw=newStringWriter(sb);HtmlTextWriterhw=newHtmlTextWriter(tw);//Pagep=newPage();//(Page)HttpContext.Current.Handler;//HtmlFormf=newHtmlForm();//页。控制.Add(f);f.Controls.Add(re);理想情况下,我希望第二个以某种方式工作,这样我就可以生成代码。抱歉弄得一团糟。这是我的测试代码。更新所以我想通了,我想我知道问题出在哪里。控件试图访问一堆不包含在dll中的文件,如语言文件、样式、js文件等。我认为问题可能是当我创建一个新的Page实例时,它不知道在哪里所有资源都被页面引用。有没有办法将页面设置为“虚拟”URL?现在我正在玩这段代码:HttpContextcontext=newHttpContext(newHttpRequest(string.Empty,"http://localhost:2090/default.aspx",string.Empty),newHttpResponse(null));您可以尝试RenderControl方法,该方法写入HtmlTextWritervarstringWriter=newStringWriter();varhtmlWriter=newHtmlTextWriter(stringWriter);myControl.RenderControl(htmlWriter);vars=stringWriter.ToString();经过大量研究,我设法找出了生成页面所缺少的东西。显然有一个函数p.DesignerInitialize()可以初始化页面。调用后,它会生成页面并可以呈现控件。这是我正在使用的新函数:publicstringRenderRad(){StringBuildersb=newStringBuilder();StringWritertw=newStringWriter(sb);HtmlTextWriterhw=newHtmlTextWriter(tw);我的页面p=新的我的页面();p.DesignerInitialize();HtmlFormf=newHtmlForm();p.Controls.Add(f);f.Controls.Add(re);re.RenderControl(hw);返回sb.ToString();我还有一个继承自Page的类,它会禁用窗体中所有控件的勾选:以上是C#学习教程:没有页面渲染控件的所有内容分享,如果对大家有用需要了解更多C#学习教程,希望大家多多关注——publicpartialclassMyPage:System.Web.UI.Page{publicoverridevoidVerifyRenderingInServerForm(Controlcontrol){return;}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
