如何建立WebPart的自定义属性?

本文详细介绍了WebPart中自定义属性的设置方法,包括文本、数字、布尔型、枚举类型属性及其个性化配置,同时探讨了如何通过代码进行属性值的修改。

WebPart的自定义属性,主要包括: 一般的文字属性,及需要使用 Checkbox , RadioButton, Dropdownlist 及 Grid 来定义和选择的属性...

  • 一般的文字属性,如输入文本,数字,如下例:

        private string _list_name = ""; private int _tb_of_column = 2;

        [WebBrowsable(true), WebDisplayName("List Name"), System.ComponentModel.Category("Setting"), Personalizable(PersonalizationScope.User)]
        public string GetListName
        {
            get { return _list_name; }
            set { _list_name = value; }
        }
        [WebBrowsable(true), WebDisplayName("Number of Column"), System.ComponentModel.Category("Setting"), Personalizable(PersonalizationScope.User)]
        public int GetTableColumn
        {
            get { return _tb_of_column; }
            set { _tb_of_column = value; }
        }

  • 使用 Checkbox 来让用户选择的属性,关键是定义时使用Bool / Boolean 即可, 如下例:

private bool _allow_Nullvalue =true;

        [WebBrowsable(true), WebDisplayName("Allow Null Value"), System.ComponentModel.Category("Setting"), Personalizable(PersonalizationScope.User)]
        public bool AllowNullValue
        {
            get { return _allow_Nullvalue; }
            set { _allow_Nullvalue = value; }
        }

  • 使用 DropDownList 让用户选择的属性,关键是使用自定义的Enum 类型来实现,如下例:

public enum OrderByType
{
    ASC,
    DESC
}
private OrderByType _myorderby = OrderByType.ASC;

[WebBrowsable(true), WebDisplayName("Order by"), System.ComponentModel.Category("Setting"), Personalizable(PersonalizationScope.User)]
public OrderByType getOrderBy
{
    get { return _myorderby; }
    set { _myorderby = value; }
}

但对 DropDownList 中的值如果想使用来自 DB 的值,仍未能解决。

使用 Radio Button / Grid 等其它控件的属性,暂时不知如何处理,可能要用到更复杂的代码,而非仅仅在定义属性时用不同的 Datatype,希望尽快可以解决,并将相关例子代码放在这里,如有知道的,也希望能在这里留言,先谢了。

 

* 如何使用代码来修改属性值?

 

必须使用代码: this.SaveProperties = true, 否则,用代码修改后,中间可以看到变更,但页面Postback 之后,仍会恢复原来的值,即无法真正修改过来,如下例,因并不是直接在界面中修改(有默认值),故必须加上代码this.SaveProperties = true ,才能真正修改有效:

        [WebBrowsable(true), WebDisplayName("Cache Key (Require Unique)"), System.ComponentModel.Category("Setting"), Personalizable(PersonalizationScope.User)]
        public string CacheKey
        {
            get
            {
                try
                {
                    this.SaveProperties = true;
                    if (_CacheKey == "")
                        return "Key_" + this.ID.Replace("_", "");
                    else
                        return _CacheKey;
                }
                catch
                {
                    return _CacheKey;
                }
            }
            set { _CacheKey = value; }
        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值