none
Dinamik yaratılan itemları Panel ve PlaceHolder kontrolleri içerisinde bulmak RRS feed

  • Soru

  • Merhabalar,

    Page_Load;

    for (int i = 0; i <5; i++)
                {

    TextBox txtw = new TextBox();

    txtw.ID = "txtw" + i.ToString();

    txtw.Attributes.Add("runat", "server");

    pnlItem.Controls.Add(txtw);

    }

    Button_Click;

                    foreach (Control c in pnlItem.Controls)
                    {
                        if (c is TextBox)
                        {
                            TextBox t = (TextBox)c;
                            string text = t.Text;
                            string id = t.ID;
                        }
                    }

    Breakpoint ile inceledigimde c Literal olarak dustugu icin TextBox degeri cekemiyorum ?

    Nerde yanlis yaptigimi bulamadim.

    Yardimlariniz icin simdiden tesekkurler.


    24 Eylül 2012 Pazartesi 20:30

Yanıtlar

  •  protected void Page_Load(object sender, EventArgs e)
        {
            for (int i = 0; i < 5; i++)
            {
                TextBox textbx = new TextBox();
                textbx.ID="ttw"+i.ToString();
                textbx.Attributes.Add("runat", "server");
                Panel1.Controls.Add(textbx);
            }
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            foreach (Control item in Panel1.Controls)
            {
                if (item is TextBox)
                {
                    TextBox t = (TextBox)item;
                    string text = t.Text;
                    string id = t.ID;
                }
            }
        }
    bu kodlar bende çalıştı açıkcası kodlarda da bir hata göremiyorum 
    24 Eylül 2012 Pazartesi 20:49

Tüm Yanıtlar

  •  protected void Page_Load(object sender, EventArgs e)
        {
            for (int i = 0; i < 5; i++)
            {
                TextBox textbx = new TextBox();
                textbx.ID="ttw"+i.ToString();
                textbx.Attributes.Add("runat", "server");
                Panel1.Controls.Add(textbx);
            }
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            foreach (Control item in Panel1.Controls)
            {
                if (item is TextBox)
                {
                    TextBox t = (TextBox)item;
                    string text = t.Text;
                    string id = t.ID;
                }
            }
        }
    bu kodlar bende çalıştı açıkcası kodlarda da bir hata göremiyorum 
    24 Eylül 2012 Pazartesi 20:49
  • Literal olarak düştüğü için textbox değeri çekemiyorum ne demek ?

    for (int i = 0; i <5; i++) {
         TextBox txtw = new TextBox();
         txtw.ID = "txtw_" + i.ToString();
         pnlItem.Controls.Add(txtw);
    }
    
    //Button Click için
    
    for (int i = 0; i <5; i++) {
         TextBox txtw = (TextBox) pnlItem.FindControl("txtw_" + i.ToString());
         string text = txtw.Text;
         string ID = txtw.ID;
    }

    İşinizi umarım görür :)


    Just a .net developer.

    24 Eylül 2012 Pazartesi 21:02
  • Yazdiginiz sonuc gibi daha onceden de denedim fakat olmadi. genede tesekkurler.
    25 Eylül 2012 Salı 05:21
  • Bu kodlarin sizde calismasi acikcasi ilgincime gitti yeni bir proje acip orda deniyim en iyisi.
    25 Eylül 2012 Salı 05:22
  • Muhtemelen bu kodların çalışmasına engel başka bir şey mevcut. Birde ispostback içerisine alarak denermisin ?

    if(!isPostBack) {//Page Load'a eklenecek kısım
      for (int i = 0; i <5; i++) {
           TextBox txtw = new TextBox();
           txtw.ID = "txtw_" + i.ToString();
           pnlItem.Controls.Add(txtw);
      }
    }
    
    //Button Click için
    
    for (int i = 0; i <5; i++) {
         TextBox txtw = (TextBox) pnlItem.FindControl("txtw_" + i.ToString());
         string text = txtw.Text;
         string ID = txtw.ID;
    }

    Belki sayfanız yenilendiği için ve bu elemanlar sayfanıza tekrar eklendiği için bu sıkıntıyla karşılaşıyor olabilirsiniz.


    Just a .net developer.

    25 Eylül 2012 Salı 06:01
  • ispostback kontrolunu en basta yapmistim zaten. Heralde goremedigim gozden kacirdigim ufak bir hatam var. Buyuk ihtimal aksam yorgunlugunu atip sabah erken bakmakla cozerim:>

    Tesekkurler.

    25 Eylül 2012 Salı 06:05
  •  
       
           if ("TextBox" == item.GetType().Name)                
            {
                  
             string text = (((TextBox)item).Text).ToString();
                     
            }
      
        

    25 Eylül 2012 Salı 13:14