我们有一个 Web 控件,我们希望将其渲染到已加载页面上的 div 中。这需要在用户单击菜单中的超链接时发生。
Web 控件有一些在 C# 代码中动态添加到其中的 javascript 文件。
我们也没有使用 aspx 文件,而是希望将 web 控件加载到普通的 html 页面上。
请让我知道最好的方法是什么,或者在我努力在网上找到任何有用的东西时将我引导到一篇文章。任何帮助表示赞赏。
我们有一个 Web 控件,我们希望将其渲染到已加载页面上的 div 中。这需要在用户单击菜单中的超链接时发生。
Web 控件有一些在 C# 代码中动态添加到其中的 javascript 文件。
我们也没有使用 aspx 文件,而是希望将 web 控件加载到普通的 html 页面上。
请让我知道最好的方法是什么,或者在我努力在网上找到任何有用的东西时将我引导到一篇文章。任何帮助表示赞赏。
您可以在字符串中动态呈现控件,将字符串发回并将其放置在您的 div 中。使用 ajax 调用后面的代码来呈现控件并返回结果。
// load the control
var oCConrol = Page.LoadControl("CustomControl.ascx");
// here you need to run some initialization of your control
// because the page_load is not loading now.
// a string writer to write on it
using(TextWriter stringWriter = new StringWriter())
{
// a html writer
using(HtmlTextWriter renderOnMe = new HtmlTextWriter(stringWriter))
{
// now render the control inside the htm writer
oCConrol.RenderControl(renderOnMe);
// here is your control rendered output.
strBuild = stringWriter.ToString();
}
}
或者,您只需制作一个额外的空 aspx 页面,其中仅包含您的控件并使用 Ajax 调用它,即可获得相同的结果。结果将再次成为控制
javascript如何是困难的,不能与控件一起使用。您不能将文本发回然后使其在控件内作为 javascript 运行,这必须分开完成。
我通过创建一个单独的、独立的 .aspx 页面和 Jquery ajax 做了类似的事情。使用 Jquery ajax 调用 .aspx 页面并通过 ajax 响应从该页面返回所有呈现的 HTML。
据我所知,没有任何方法可以在 .aspx 页面的上下文之外呈现 Web 控件。