Csharp/C#教程:动态呈现控件,从字符串/ XML文件中确定类型?分享


动态呈现控件,从字符串/ XML文件中确定类型?

在ASP.NET应用程序中,我想动态呈现几个控件及其属性来自XML文档。 这是踢球者:我希望能够动态确定控件的类型。 所以,在我的XML文档中,我有这样的事情:

 myControl1 CheckBox Text For This Control  

我可以让一切工作正常,就属性而言,只要我手动将新控件实例化为一个复选框……但我似乎无法弄清楚如何使它成为一个复选框,而不是文本框或其他什么基于XML信息……

您可能希望能够控制超出Control类型的输出。 我的建议:

 public interface IControlProvider { public Control GetControl(XmlElement controlXml); }; public class ControlProviderFactory : IControlProvider { private Dictionary providers = new Dictionary(); public ControlProviderFactory() { //Add concrete implementations of IControlProvider for each type } public Control GetControl(XmlElement controlXml) { string type = (controlXml.SelectSingleNode("type") as XmlElement).InnerText; if(!providers.ContainsKey(type) throw new Exception("No provider exists for " + type); return providers[type].GetControl(controlXml); } } 

您还可以添加一个ReflectionControlProvider作为非注册类型的后备,并让它在遇到未知提供程序类型时使用Activator.CreateInstance而不是抛出exception。 这样,您就可以获得最大的灵活性,可以对渲染和动态创建进行特定控制

您可以创建有效类型的Dictionary ,也可以使用Activator.CreateInstance按名称创建实例。

上述就是C#学习教程:动态呈现控件,从字符串/ XML文件中确定类型?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1251017.html

(0)
上一篇 2022年11月8日
下一篇 2022年11月8日

精彩推荐