如何在页面中动态添加控件 [英] how find controls added dynamically in page

查看:103
本文介绍了如何在页面中动态添加控件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我根据db中存储的值添加不同的控件。例如,如果值为1,我正在添加文本框,如果是0,我正在添加drpdwnlist。



我的代码如下:



I am adding different controls according to value stored in db. eg if the value is 1 i am adding textbox and if its 0 i am adding drpdwnlist.

my code is as below:

cmd = new SqlCommand("Select label,control_name FROM search", connection);
        DataTable dt = new DataTable();
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        da.Fill(dt);
        var table = new Table();
      
        for (int x = 0; x < dt.Rows.Count; x++)
        {
            string contrl = dt.Rows[x]["control_name"].ToString();
                 if (contrl.Equals("1"))
            {
                var row = new TableRow();
                var cell = new TableCell();
                var cell1 = new TableCell();
                TextBox textbox = new TextBox();
                textbox.ID = "txt"+ x;
               
                textbox.Width = new Unit(180);

                cell.Controls.Add(textbox);
                row.Cells.Add(cell1);
                row.Cells.Add(cell);
                cell1.Text = lbl;

                if (dts.Rows[0][x].Equals("0"))
                    table.Rows.Add(row);
            }
            if (contrl.ToString().Equals("0"))
            {
                var row = new TableRow();
                var cell = new TableCell();
                var cell1 = new TableCell();
                DropDownList ddlPercent = new DropDownList();
                ddlPercent.AutoPostBack = true;
                ddlPercent.ID ="ddlPercent "+x;

                cell.Controls.Add(ddlPercent);
                row.Cells.Add(cell1);
                cell1.Text = lbl;
                row.Cells.Add(cell);
                table.Rows.Add(row);
            }

 container.Controls.AddAt(0, table);



i我正在使用以下代码来查找添加的控件,但它没有工作n给出errer对象引用没有设置




i am using following code to find added controls but its not working n giving errer object reference is not set

object wantedNode = this.FindName("txt"+x);
            if (wantedNode is TextBox)
            {
                
                TextBox wantedChild = wantedNode as TextBox;
                 a = wantedChild.Text;
                
            }



请在这方面帮助我。



提前致谢


Please help me in this regard.

Thanks in advance

推荐答案


尝试在 Page_Init 方法中添加动态控件,它会起作用...



Hi try adding your dynamic controls in Page_Init method, It will work...

protected void Page_Init(object sender, EventArgs e)
       {
           TextBox txt = new TextBox () { ID="txt"};
           divContainer.Controls.Add(txt);
       }










protected void Button1_Click(object sender, EventArgs e)
       {
          var text =  divContainer.FindControl("txt") as TextBox;
          text.Text = "modified";
       }


这篇关于如何在页面中动态添加控件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆