我想要做的是覆盖Label控件并执行以下操作:
我在自定义xml文件中定义了一些键/值对,我想在其中获取Label Controls的Text属性值,我的设置xml文件如下所示:
<label key="lblLabel1" value="Something"/>
当我创建自定义标签控件的新实例时,我只会传递ID
,它会在设置文件中找到匹配的ID键,并根据它找到的内容设置Text
。 / p>
我还喜欢在Source View中定义我的自定义控件,如下所示:
<ccontrol:CLabel ID="lblLabel1"/>
这里我只更改设置ID属性,Text应该来自settings.xml文件。
我该怎么做?
答案 0 :(得分:1)
虽然我也建议使用资源,但你要求的却相当容易。
首先将您的键值对存储在appSettings(Web.config)链接: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;
}
}
}
}
}