c#中基于设置创建自定义控件

本文关键字:设置 创建 自定义控件 于设置 | 更新日期: 2023-09-27 18:12:56

我想做的是重写Label控件,并做以下操作:

我在一个自定义xml文件中定义了一些键/值对,我喜欢在其中获取标签控件的文本属性值,我的设置xml文件看起来像下面的:

<label key="lblLabel1" value="Something"/>

当我创建自定义标签控件的新实例时,我只会传递ID,它会在设置文件中找到匹配的ID键,并根据它找到的内容设置Text

我还喜欢在源视图中定义自定义控件,如下所示:

<ccontrol:CLabel ID="lblLabel1"/>

这里我只更改了set ID属性和Text应该来自settings.xml文件。

我该怎么做呢?

c#中基于设置创建自定义控件

虽然我也建议使用资源,但您所要求的是相当容易做到的。

首先将键值对存储在appSettings (Web.config) Link: http://msdn.microsoft.com/en-us/library/610xe886.aspx

然后像这样写一个控件(未测试):

using System;
using System.Configuration;
using System.Web;
using System.Web.Configuration;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Web
{
    public class SpecialLabel : Label
    {   
        protected override void OnLoad (EventArgs e)
        {
            base.OnLoad (e);
            //get value from appsettings
            if(!string.IsNullOrEmpty(this.ID)) {
                Configuration rootWebConfig1 = WebConfigurationManager.OpenWebConfiguration(null);
                if (rootWebConfig1.AppSettings.Settings.Count > 0)
                {
                    KeyValueConfigurationElement customSetting = rootWebConfig1.AppSettings.Settings[this.ID];
                    if (customSetting != null)
                        this.Text = customSetting.Value;
                }
            }
        }
    }
}