1

我们有一个 Web 控件,我们希望将其渲染到已加载页面上的 div 中。这需要在用户单击菜单中的超链接时发生。

Web 控件有一些在 C# 代码中动态添加到其中的 javascript 文件。

我们也没有使用 aspx 文件,而是希望将 web 控件加载到普通的 html 页面上。

请让我知道最好的方法是什么,或者在我努力在网上找到任何有用的东西时将我引导到一篇文章。任何帮助表示赞赏。

4

2 回答 2

2

您可以在字符串中动态呈现控件,将字符串发回并将其放置在您的 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 运行,这必须分开完成。

于 2012-08-03T10:41:38.320 回答
0

我通过创建一个单独的、独立的 .aspx 页面和 Jquery ajax 做了类似的事情。使用 Jquery ajax 调用 .aspx 页面并通过 ajax 响应从该页面返回所有呈现的 HTML。

据我所知,没有任何方法可以在 .aspx 页面的上下文之外呈现 Web 控件。

于 2012-08-04T05:08:40.190 回答