在一个HTML文本编程作家加载用户控制 [英] load a user control programmatically in to a html text writer

查看:99
本文介绍了在一个HTML文本编程作家加载用户控制的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想呈现一个用户控件为一个字符串。该应用程序设置,使用户能够使用令牌和用户控件呈现这个标记是找到。

I am trying to render a user control into a string. The application is set up to enable user to use tokens and user controls are rendered where the tokens are found.

StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
HtmlTextWriter writer = new HtmlTextWriter(sw);

Control uc = LoadControl("~/includes/HomepageNews.ascx");
uc.RenderControl(writer);
return sb.ToString();

这code呈现的控制,但没有所谓的控制的Page_Load事件被触发。有一个在控制需求火灾中继器。

推荐答案

我一直使用由Scott Guthrie的在他的博客很长一段时间提供了以下code:

I've been using the following code provided by Scott Guthrie in his blog for quite some time:

public class ViewManager
{
    public static string RenderView(string path, object data)
    {
        Page pageHolder = new Page();
        UserControl viewControl = (UserControl) pageHolder.LoadControl(path);

        if (data != null)
        {
            Type viewControlType = viewControl.GetType();
            FieldInfo field = viewControlType.GetField("Data");
            if (field != null)
            {
                field.SetValue(viewControl, data);
            }
            else
            {
                throw new Exception("ViewFile: " + path + "has no data property");
            }
        }

        pageHolder.Controls.Add(viewControl);
        StringWriter result = new StringWriter();
        HttpContext.Current.Server.Execute(pageHolder, result, false);
        return result.ToString();
    }
}

对象数据参数,实现数据的动态加载到用户的控制,并且可以通过一个数组或者别的什么类似的用于注入多个变量到控制

The object data parameter, enables dynamic loading of data into the user control, and can be used to inject more than one variable into the control via an array or somethin similar.

这code将火在控制一切正常事件。

This code will fire all the normal events in the control.

<一个href=\"http://weblogs.asp.net/scottgu/archive/2006/10/22/Tip_2F00_Trick_3A00_-Cool-UI-Templating-Technique-to-use-with-ASP.NET-AJAX-for-non_2D00_UpdatePanel-scenarios.aspx\">You可以阅读更多关于它这里

问候
加斯帕豪格

Regards Jesper Hauge

这篇关于在一个HTML文本编程作家加载用户控制的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆