AttributeCollection类与Attributes.Add方法的使用[转载][通俗易懂]

AttributeCollection类与Attributes.Add方法的使用[转载][通俗易懂]控件属性集合:AttributeCollection类AttitudeCollection隶属于namespaceSystem.Web.UI命名空间。AttributeCollection类属于集合类,具有其他集合所共有的一些属性。AttributeCollection类用来封装服务器控件的所有属性,可实现对服务器属性集合的添加和删除。控件的属性包括颜色、样式、名称等,这些属性都可以通过

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

控件属性集合: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属性中的方法,遍历控件的属性并打印。

[csharp] 
view plain
 copy

  1. <html xmlns=“http://www.w3.org/1999/xhtml” >  
  2. <head runat=“server”>  
  3.     <title>无标题页</title>  
  4. </head>  
  5. <body>  
  6.     <form id=“form1” runat=“server”>  
  7.     <div>  
  8.          <asp:TextBox ID=“TextBox1” runat=“server” ></asp:TextBox>  
  9.         <asp:Button ID=“Button1” runat=“server” OnClick=“Button1_Click” Text=“Button” /></div>  
  10.     </form>  
  11. </body>  
  12. </html>  

 

[csharp] 
view plain
 copy

  1. protected void Button1_Click(object sender, EventArgs e)  
  2.  {  
  3.      AttributeCollection myac = TextBox1.Attributes; //创建当前状态集合  
  4.      Response.Write(myac.Count);//显示当前集合中的项数  
  5.      myac.Add(“Name”“cgj”);//添加属性到集合中  
  6.      myac.Add(“OnClick”“javascript:alert(‘Hello’);”);  
  7.      IEnumerator myenum = myac.Keys.GetEnumerator();  
  8.      while (myenum.MoveNext())//遍历属性  
  9.      {  
  10.          Response.Write(myenum.Current.ToString());  
  11.      }  
  12.      myac.Remove(“name”);//移除集合中的属性键  
  13.  }  


 

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

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

如:

this.TextBox1.Attributes.Add(“onblue”, “window.Label1.style.backgroundColor=’#000000′;”);

this.TextBox1.Attributes.Add(“onblur”,”this.style.display=’none'”);

javascript事件:

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

onDblClick    鼠标双击事件

onMouseDown    鼠标上的按钮被按下了

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

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

onMouseMove    鼠标移动时触发的事件

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

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

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

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

 

this.txtSugStartDate.Attributes.Add(“onclick”, “return showCalendar(‘” + this.txtSugStartDate.ClientID + “‘,’y/mm/dd’) “);
this.txtSugStartDate.Attributes.Add(“readonly”, “true”);
this.txtSugEndDate.Attributes.Add(“onclick”, “return showCalendar(‘” + this.txtSugEndDate.ClientID + “‘,’y/mm/dd’)”);
this.txtSugEndDate.Attributes.Add(“readonly”, “true”);
 this.txtProcessStartDate.Attributes[“onclick”] = “return showCalendar(‘” + this.txtProcessStartDate.ClientID + “‘,’y/mm/dd’)”;
 this.txtProcessStartDate.Attributes[“readonly”] = “true”;
 this.txtProcessEndDate.Attributes[“onclick”] = “return showCalendar(‘” + this.txtProcessEndDate.ClientID + “‘,’y/mm/dd’)”;
 this.txtProcessEndDate.Attributes[“readonly”] = “true”; 

 

 使用举例:

//首先要在PageLoad()事件中注册属性
    protected void Page_Load(object sender, EventArgs e)
    {

        if (!IsPostBack)
        {

            Button1.Attributes.Add(“onclick”, “return checkSame()”);//为Button1添加onclick()事件 ,Button为服务器控件
        }//注意:checkSame()这是一个写在aspx面页的js函数,必须有返回值,为:true 或 false
    }

    //接着写Button1的onclick事件,如果刚才的checkSame()返回为true则招行下面的事件,否则不执行

    protected void Button1_Click(object sender, ImageClickEventArgs e)
    {

        SqlParameter[] Params = new SqlParameter[2];
        Params[0] = dbs.MakeInParams(“@uid”, SqlDbType.VarChar, 10, Session[“Uid”].ToString());
        Params[1] = dbs.MakeOutParms(“@Upwd”, SqlDbType.VarChar, 10);
        if (dbs.ExecuteNonQuery(CommandType.StoredProcedure, “selectPwd”, Params) > 0)
        {

            string userPwd = Params[1].Value.ToString();
            if (userPwd != this.old_pwd.Text)
            {

                Response.Write(“<script>alert(‘原始密码错误!’)</script>”);
            }
            else
            {

               
            }
        }
        else 
        {

            ClientScript.RegisterStartupScript(this.GetType(), “”, “<script>alert(‘操作失败!’)</script>”);
        }

    }

//呵呵。。再写一个js试例吧
      function checkSame()
    {

      var Obj1=document.getElementById (“new_pwd”).value;
      var Obj2=document.getElementById (“re_new_pwd”).value;
      
      if(Obj1!=Obj2)
       {

          alert(“两次密码输入不一致!”);
          document.getElementById(“new_pwd”).focus();
          return false;
       }
       else
       {

         return true;
       }
    }

//明白了吗。。这是一个用来判断两次密码输入是否一致的函数


原文地址:http://blog.csdn.net/byondocean/article/details/5799863

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/189405.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • IT项目团队管理

    IT项目团队管理漫谈IT项目团队管理心得如果在软件项目实施中选出最难解决的几个问题,那么管理问题一定名列前茅。在管理问题中,团队管理又是其中的难点。一个项目管理的好坏,很大程度就体现在团队的建设和管理上。团队管理涉及到管理学、心理学和哲学等诸多方面内容,具体实施起来还容易产生许多误区,因此,对项目主管的综合素质要求颇高。笔者进入项目管理领域的时间尚短,最近读了一些书籍,结合自己的一些经验,汇成一些心得体会,愿…

  • selenium.webdriver_python electron

    selenium.webdriver_python electronhttp://blog.csdn.net/huilan_same/article/details/52789954今天谈谈文件下载吧,很多人不会处理弹出的文件下载框,其实跟上传类似,可以用autoit和win32api解决,方法类似,可以看博主之前的文章 Pythonselenium——文件上传所有方法整理总结 ,今天这里博主主要想讲讲更漂亮的一种处理办法,那就是指定

  • rabbitmq集群安装_java实现消息队列

    rabbitmq集群安装_java实现消息队列rabbitmq集群搭建失败解决随记1现象:2原因:3解决方法:1现象:1、各节点已改hosts,各节点ping节点名正常。2、md5sum.erlang.cookie各节点值一样。按以下步骤加入失败:$rabbitmqctlstop_app #停止rabbitmq服务$rabbitmqctlreset #清空节点状态$rabbitmqctljoin_clusterrabbit@rabbitmq3$rabbitmqctlstart_app

  • ringbuffer是什么_Buffer

    ringbuffer是什么_BufferRingBuffer的高级用法(类似内核KFIFO)环形缓冲区(ringbuffer),环形队列(ringqueue)多用于2个线程之间传递数据,是标准的先入先出(FIFO)模型。一般来说,对于多线程共享数据,需要使用mutex来同步,这样共享数据才不至于发生不可预测的修改/读取,然而,mutex的使用也带来了额外的系统开销,ringbuffer/queue的引入,就是为了有效地解…

  • 木马产业链 安全新忧患

    木马产业链 安全新忧患

  • telnet命令详解_Telnet命令

    telnet命令详解_Telnet命令前面的Telnet的命令使用方法部分是我在网上搬过来的,后面的内容是我在自己初学实践时所遇到的一些问题及解决方法。Telnet使用介绍  1、点击开始 → 运行 → 输入CMD,回车。  2、在出来的DOS界面里,输入telnet测试端口命令:telnetIP端口或者telnet域名端口,回车。  如果端口关闭或者无法连接,则显示不能打开到主机的链接,链接失败;端口打开的…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号