gpt4 book ai didi

asp.net - 以编程方式将用户控件加载到 html 文本编写器中

转载 作者:行者123 更新时间:2023-12-04 13:21:46 25 4
gpt4 key购买 nike

我正在尝试将用户控件呈现为字符串。应用程序设置为使用户能够使用 token ,并且在找到 token 的地方呈现用户控件。

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();

该代码呈现控件,但在控件的 Page_Load 中调用的所有事件均未触发。控件中有一个中继器需要触发。

最佳答案

很长一段时间以来,我一直在使用 Scott Guthrie 在他的博客中提供的以下代码:

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();
}
}
object data参数,可以将数据动态加载到用户控件中,并且可以用于通过数组或类似的东西将多个变量注入(inject)到控件中。

此代码将触发控件中的所有正常事件。

You can read more about it here

问候
杰斯珀豪格

关于asp.net - 以编程方式将用户控件加载到 html 文本编写器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/258877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com