【问题标题】:Render ascx control with parameter and insert html in asp.net?用参数渲染ascx控件并在asp.net中插入html?
【发布时间】:2012-10-04 19:09:07
【问题描述】:

如何将 ascx 控件替换为 html 中的字符串标记?

我想创建一个动态 html 模板。

这是我的html

<div id="Detail_Container">

   <div>Gallery 1</div>

    <load_gallery>G6</load_gallery>

   <div>Gallery 2</div>

   <load_gallery>G7</load_gallery>

</div>

我试过这个: 控件正在渲染,但我的图像没有加载到控件中。

            StringBuilder sb = new StringBuilder();
            HtmlTextWriter textWriter = new HtmlTextWriter(new StringWriter(sb));
            UserControl objControl = (UserControl)LoadControl(inControlPath);
            objControl.GalleryId = "G5";

            if (objControl != null)
                objControl.RenderControl(textWriter);

            string controlstr = tw.ToString();

【问题讨论】:

    标签: asp.net ascx


    【解决方案1】:

    您不能只将用户控件作为字符串添加到 html,因为它是在服务器上呈现和处理的。但是您可以在页面上放置一个占位符,然后将控制权添加到这个宫殿持有人。

    以下是如何在运行时加载和添加用户控件的示例代码:

      //here I am loading usercontrol from ascx file...
      WfGenericFormUserControl genControl = (WfGenericFormUserControl)LoadControl("~/UserControls/WfGenericFormUserControl.ascx");
    
      //FormPlaceHolder is placeholder inside target page
      FormPlaceHolder.Controls.Add(genControl);
    

    GenControl 控件现在将显示在页面上。

    【讨论】:

    • 是的,但是如何动态地添加这个占位符正确的点?我的意思是我可以用 formplaceholder 替换“G6”吗?
    • 是的,您可以在运行时生成所有 html 代码,然后使用以下命令在占位符内注入:placeholder.Controls.Add(new LiteralControl("
      一些 html 生成于运行时
      "));
    猜你喜欢
    • 1970-01-01
    • 2012-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多