zoukankan      html  css  js  c++  java
  • 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赋值。

  • 相关阅读:
    CDN使用心得
    IIS6.0实现SSL安全加密
    从print css谈样式表的媒介(media)属性
    ASP.NET文件下载各种方式比较:对性能的影响、对大文件的支持、对断点续传和多线程下载的支持
    “同名Cookie”的分析
    周末部门游玩顺德碧桂园度假村
    Linux特殊文件权限
    周末部门游玩广州长隆欢乐世界
    开个博客
    iOS TableView数据绑定的原则
  • 原文地址:https://www.cnblogs.com/huochangjun/p/1747995.html
Copyright © 2011-2022 走看看