Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

How can i use findControl and how can i get id's according to FindControl method? i need to get all TextBox data there are 40 textbox. And TextBoxid data...

i reall want to learn also linq method ;)
  protected void Button1_Click(object sender, EventArgs e)
        {
          //  SetRecursiveTextBoxAndLabels(PlaceHolder1);
            CreateForm creater = new CreateForm();
            creater.Holder = PlaceHolder1;
            creater.SetAccessForm();

            if (PlaceHolder1.Controls.Count > 0)
            {
                foreach (Control item in PlaceHolder1.Controls)
                {
                    item.FindControl(item.ID) is TextBox-------> How can i control is textBox?  Because there are labels grid.... 
                }
            }

        }

alt text

i need only this :

    ENG_ACCESS engAccess = new ENG_ACCESS();
            Type engTyp = engAccess.GetType();
            PropertyInfo[] properties = engTyp.GetProperties();

            TextBox txtbox = new TextBox();

            foreach (PropertyInfo strColumn in properties)
              {
                  txtbox = (TextBox)Page.FindControl("txt" + strColumn.Name);
                ListBox1.Items.Add(txtbox.Text);
            }

My WHOLE CODES:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Reflection;

namespace RecursiveAddTextBox
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            using (var dataCtx = new DataClasses1DataContext())
            {

                if (!IsPostBack)
                {
                    SetRecursiveTextBoxAndLabels();
                }



            }

        }

        void SetRecursiveTextBoxAndLabels()
        {
            TextBox txtBox;
            Label lbl;

                ENG_ACCESS eng = new ENG_ACCESS();
                Type typ = eng.GetType();
                PropertyInfo[] properties = typ.GetProperties();
                PlaceHolder1.Controls.Add(new LiteralControl("<table>"));
                for( int i =0;  i<properties.Length; i++)
                {
                    lbl = new Label();
                    lbl.ID = "lbl" + properties[i].Name;
                    lbl.Text = properties[i].Name;
                    PlaceHolder1.Controls.Add(new LiteralControl("<tr><td>"));
                    PlaceHolder1.Controls.Add(lbl);
                    PlaceHolder1.Controls.Add(new LiteralControl("</td><td>"));
                    txtBox = new TextBox();
                    txtBox.ID ="txt"+properties[i].Name;
                    PlaceHolder1.Controls.Add(txtBox);
                    PlaceHolder1.Controls.Add(new LiteralControl("</td></tr>"));
                }
                PlaceHolder1.Controls.Add(new LiteralControl("</table>"));

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
           SetRecursiveTextBoxAndLabels();



        }
        protected void Button2_Click(object sender, EventArgs e)
        {

            if (PlaceHolder1.Controls.Count > 0)
            {
                foreach (Control item in PlaceHolder1.Controls)
                {
                    if (item is TextBox)
                    {
                        TextBox t1 = (TextBox)PlaceHolder1.FindControl(item.ID);
                    }
                }
            }

        }

    }
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
173 views
Welcome To Ask or Share your Answers For Others

1 Answer

protected void Button1_Click(object sender, EventArgs e) 
        { 
          //  SetRecursiveTextBoxAndLabels(PlaceHolder1); 
            CreateForm creater = new CreateForm(); 
            creater.Holder = PlaceHolder1; 
            creater.SetAccessForm(); 

            if (PlaceHolder1.Controls.Count > 0) 
            { 
                foreach (Control item in PlaceHolder1.Controls) 
                { 
                     if (item is TextBox)
                         TextBox t1=(TextBox)PlaceHolder1.FindControl(item.ID);
                } 
            } 
        }

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...