首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >asp.net服务器控件中的默认值

asp.net服务器控件中的默认值
EN

Stack Overflow用户
提问于 2010-09-07 16:46:38
回答 3查看 2.7K关注 0票数 5

我有一个关于默认值属性的问题。

当我在设计模式下将控件添加到页面时,默认值不起作用。这是我的代码:

代码语言:javascript
复制
[DefaultProperty("Text")]
[ToolboxData("<{0}:KHTLabel runat=server key=dfd></{0}:KHTLabel>")]
public class KHTLabel : Label ,IKHTBaseControl
{
    [Bindable(true)]
    [Category("Appearance")]
    [DefaultValue("KHT")]
    [Localizable(true)]
    public string Key
    {
        get
        {
            String s = (String)ViewState["Key"];
            return ((s == null) ? String.Empty : s);
        }

        set
        {
            ViewState["Key"] = value;
        }
    }

    protected override void RenderContents(HtmlTextWriter writer)
    {......

但是,在设计模式下,当我从工具箱添加控件时,该键并不存在

代码语言:javascript
复制
<cc1:KHTLabel ID="KHTLabel1" runat="server"></cc1:KHTLabel>
EN

Stack Overflow用户

发布于 2011-11-20 03:18:48

通过在ToolboxDataAttribute中显式命名第一个答案(<cc1:KHTLabel ID="KHTLabel1" runat="server" Key="KHT"></cc1:KHTLabel>),您可以获得您在备注中提到的结果。要使其也成为实际的默认值,您仍然必须在该属性的getter中返回该值。这会导致在您的类中重复三次相同的值。

顺便说一句,我不明白为什么你的ToolboxData中现在有key=dfd,而属性名是Key,并且是string类型。

代码语言:javascript
复制
[DefaultProperty("Text")]
[ToolboxData("<{0}:KHTLabel runat=server Key=\"KHT\"></{0}:KHTLabel>")]
public class KHTLabel : Label//, IKHTBaseControl
{
    [Bindable(true)]
    [Category("Appearance")]
    [DefaultValue("KHT")]
    [Localizable(true)]
    public string Key
    {
        get
        {
            var s = (String)ViewState["Key"];
            return (s ?? "KHT");
        }

        set { ViewState["Key"] = value; }
    }

    protected override void RenderContents(HtmlTextWriter writer)
    {
        // TODO: Implement logic
    }
}
票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3657131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档