Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从用户控件加载模板_C#_Asp.net_Sitefinity - Fatal编程技术网

C# 从用户控件加载模板

C# 从用户控件加载模板,c#,asp.net,sitefinity,C#,Asp.net,Sitefinity,我正在与Sitefinity合作,我正在开发一个控件设计器-但是我不认为我的问题是针对Sitefinity的 我有一门课,比如: 公共类案例研究特征数据项:案例研究选择或控制设计数据库 它所固有的类本身就是从UserControl继承的,如下所示: 公共类案例研究SelectorControldesignerbase:System.Web.UI.UserControl{ 在CaseStudyFeaturedItem中,是否可以加载作为嵌入式资源的模板,然后访问该控件上的控件 本质上,我有user

我正在与Sitefinity合作,我正在开发一个控件设计器-但是我不认为我的问题是针对Sitefinity的

我有一门课,比如:

公共类案例研究特征数据项:案例研究选择或控制设计数据库

它所固有的类本身就是从UserControl继承的,如下所示:

公共类案例研究SelectorControldesignerbase:System.Web.UI.UserControl{

在CaseStudyFeaturedItem中,是否可以加载作为嵌入式资源的模板,然后访问该控件上的控件

本质上,我有usercontrol.ascx,它是一个嵌入式资源,所以有一个字符串,如:

mynamespace.myclass.usercontrol.ascx

在CaseStudyFeaturedItem中,我希望能够加载该用户控件,然后修改其中的控件(即文字/标签)

这可能吗

谢谢
Al

是的,这是可能的,但我不完全确定根据您的问题您试图实现什么。您可以使用动态加载用户控件。如果您将结果强制转换为适当的控件类型,您将可以访问它的所有属性。从那里,您可以将它添加到您想要保存它的任何容器中。是吗您想做什么?

我们对Sitefinity中的每个控件都这样做,但是使用您自己的自定义控件(我假设您使用的是Sitefinity 3.7)会有点复杂。步骤如下:
-实现从GenericContainer继承的模板容器控件

protected class ItemListContainer : GenericContainer
{
    public virtual Repeater RepeaterControl
    {
        get { return base.GetControl<Repeater>("repeater", true); }
    }
}
-通过容器访问所有控件

listContainer = new ItemListContainer();
ItemListTemplate.InstantiateIn(listContainer);
listContainer.RepeaterControl.DataBind();
在SiteFinity4.0中,我们为所有控件提供了一个基类,这将为您提供开箱即用的功能。但在3.7中,您必须手动完成所有这些操作

ControlUtils类位于Telerik.Framework.Web命名空间中。上面的代码是如何在ContentView控件中完成这一切的,您可能需要根据具体情况进行一些修改

干杯,
斯拉夫
Sitefinity团队@Telerik

listContainer.RepeaterControl.DataBind();