AttributeCollection类与Attributes.Add方法的使用

控件属性集合:AttributeCollection类

AttitudeCollection隶属于namespace System.Web.UI命名空间。AttributeCollection类属于集合类,具有其他集合所共有的一些属性。AttributeCollection类用来封装服务器控件的所有属性,可实现对服务器属性集合的添加和删除。控件的属性包括颜色、样式、名称、事件等,这些属性都可以通过AttributeCollection类访问到。

AttributeCollectin类的主要目的是使开发人员可以通过编程的方式访问服务器的所有属性,并实现对这些属性的编辑。

语法定义:

public sealed class AttributeCollection

AttitudeCollection类的构造函数:

public AttributeCollection(StateBag bag)

参数“bag”封装着控件的所有属性键和值

AttributeCollection类的使用方法如下:

AttributeCollection myac = TextBox1.Attributes;

TextBox1之所有拥有Attibutes属性,是因为TextBox1继承于命名空间 System.Web.UI.WebControls的WebControl类,而Attributes是WebControl类的一个属性:

public System.Web.UI.AttributeCollection Attributes { get; }

 

属性详解:

Count:属性集合中的属性数量

CssStyle:服务器控件的样式

Item:获取控件指定的属性

Keys:获取控件属性的键集合

 

典型应用:动态添加属性并遍历属性集

AttributeCollection类主要的功能是提供对控件属性的操作。本例演示如何在运行时动态添加属性,同时通过Keys属性中的方法,遍历控件的属性并打印。

前台代码:
<body>
    <form id="form1" runat="server">
        <div>
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
        </div>
    </form>
</body>

后台代码:

using System;
using System.Collections;
using System.Web.UI;

namespace WebApplication1
{
    public partial class WebForm2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
            }
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            AttributeCollection myac = TextBox1.Attributes; //创建当前状态集合
            Response.Write(myac.Count);//显示当前集合中的项数
            myac.Add("onblur", "window.TextBox1.style.backgroundColor='#000000';");//onblur:失去焦点事件
            myac.Add("OnClick", "javascript:alert('Hello');");
            IEnumerator myenum = myac.Keys.GetEnumerator();
            while (myenum.MoveNext())//遍历属性
            {
                Response.Write(myenum.Current.ToString());
            }
            myac.Remove("Name");//移除集合中的属性键
        }
    }
}

理解了AttitudeCollection集合类,我们对Attributes.Add方法的使用就会有更加深刻的理解,下面我们演示Attributes.Add用途与用法。

Attributes.Add("javascript事件","javascript语句");

如:

this.TextBox1.Attributes.Add("onblur", "window.TextBox1.style.backgroundColor='#000000';");

this.TextBox1.Attributes.Add("onblur","this.style.display='none'");

javascript事件:

onClick     鼠标点击事件,多用在某个对象控制的范围内的鼠标点击

onDblClick    鼠标双击事件

onMouseDown    鼠标上的按钮被按下了

onMouseUp    鼠标按下后,松开时激发的事件

onMouseOver 当鼠标移动到某对象范围的上方时触发的事件

onMouseMove    鼠标移动时触发的事件

onMouseOut 当鼠标离开某对象范围时触发的事件

onKeyPress    当键盘上的某个键被按下并且释放时触发的事件.[注意:页面内必须有被聚焦的对象]

onKeyDown    当键盘上某个按键被按下时触发的事件[注意:页面内必须有被聚焦的对象]

onKeyUp   当键盘上某个按键被按放开时触发的事件[注意:页面内必须有被聚焦的对象]

 使用举例:

后台代码:
using System;

namespace WebApplication1
{
    public partial class WebForm2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Button1.Attributes.Add("onclick", "return check()");//为Button1添加onclick()事件 ,Button为服务器控件
            }//注意:check()这是一个写在aspx面页的js函数,必须有返回值,为:true 或 false
            //如果刚才的check()返回为true则招行下面的Button1_Click事件,否则不执行
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            Response.Write("Button1_Click事件执行了");
        }
    }
}

前台js:

<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <script>
        function check() {            
            return true;
        }
    </script>
</head>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 C# 中使用 CAD2019 二次开发获取块属性,可以按照以下步骤进行: 1. 获取块表记录(BlockTableRecord)对象,可以通过以下代码获取: ``` // 获取当前文档的数据库 Database db = HostApplicationServices.WorkingDatabase; // 开启事务处理 using (Transaction trans = db.TransactionManager.StartTransaction()) { // 获取块表 BlockTable blkTbl = trans.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable; // 获取块表记录 BlockTableRecord blkTblRec = trans.GetObject(blkTbl[BlockTableRecord.ModelSpace], OpenMode.ForRead) as BlockTableRecord; // 进行其他操作 // ... } ``` 2. 在获取到块表记录对象后,可以通过块表记录的方法 GetBlockReferenceIds() 获取到块参照的 ID 列表,然后遍历 ID 列表,获取每个块参照对象的属性值,代码如下: ``` // 遍历块参照对象 foreach (ObjectId blkRefId in blkTblRec.GetBlockReferenceIds(true, true)) { // 获取块参照对象 BlockReference blkRef = trans.GetObject(blkRefId, OpenMode.ForRead) as BlockReference; // 获取块参照对象的属性集合 AttributeCollection attCol = blkRef.AttributeCollection; // 遍历属性集合 foreach (ObjectId attId in attCol) { // 获取属性对象 DBObject dbObj = trans.GetObject(attId, OpenMode.ForRead); // 判断是否为属性对象 AttributeReference attRef = dbObj as AttributeReference; if (attRef != null) { // 获取属性名和属性值 string attName = attRef.Tag; string attValue = attRef.TextString; // 进行其他操作 // ... } } } ``` 通过以上代码,即可获取块参照对象的属性值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值