Asp.net开发之旅--动态产生控件

      在很多时候,我们根据实际需要,会用动态生成控件的方式来处理我们要显示的内容,这样在数据很多的时候,就不要花很多时间去建控件,这样对程序员来说,可以节约很多时间,同时可以使自己的代码精炼,下面我用一个关键字的例子来阐述一下:

 

需求:

    我现在要在页面上显示一篇文章所有的关键字,并且点击每个关键字都能触发事件,将他添加到textbox中;

 

实现:

 

        protected void keywordsBind()
        {
            string[] keywords = {"aa","bb","cc","dd"}
            foreach (string keyword in keywords)
            {

              if(keyword!=null && keyword!="")

               {

                  LinkButton lbtn = new LinkButton();//实例化LinkButton控件

                  lbtn.Text = keyword;
                  lbtn.Font.Size = 16;
                  lbtn.ForeColor = Color.Red;
                  lbtn.Click += new EventHandler(lbtn_Click);//添加点击事件
                  pKeyWords.Controls.Add(lbtn); //将LinkButton添加到pKeyWords(是panel控件)

                }
             }                 
          }

 

        //点击事件的实现

        protected void lbtn_Click(object sender, EventArgs e)
        {

            TextBox aa = (TextBox)(gvPost.Rows[0].Cells[4].FindControl("TextBox2"));
            LinkButton lb = (LinkButton)sender;
            string keywords = lb.Text;
            if (aa.Text == "")
            {
                aa.Text = keywords;
            }
            else
            aa.Text = aa.Text+","+lb.Text;
        }

 

有人或许会问,我这样生成的控件,它的ID是什么,我怎么获取他的ID?

对于这个问题,我的想法是认为控制的他的ID,就是用个循环给每个自动生成的控件加上ID,如下:

         protected void keywordsBind()
        {

            int Id = 1;
            string[] keywords = {"aa","bb","cc","dd"}
            foreach (string keyword in keywords)
            {

              if(keyword!=null && keyword!="")

               {

                  LinkButton lbtn = new LinkButton();

                  string lbtnId = "lbtn" + Id;

                  lbtn.Id = lbtnId; 

                  lbtn.Text = keyword;
                  lbtn.Font.Size = 16;
                  lbtn.ForeColor = Color.Red;
                  lbtn.Click += new EventHandler(lbtn_Click);
                  pKeyWords.Controls.Add(lbtn);

                  Id++;

                }
             }                 
          }

这样就可以给每个控件ID赋值。

转载于:https://www.cnblogs.com/huochangjun/archive/2010/05/31/1747995.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值