2012-06-18 6 views
0

J'ai créé une application web dans laquelle j'ai besoin de générer des zones de texte en fonction du nombre entré par l'utilisateur.J'ai utilisé Ajax et créé des zones de texte dynamiquement mais ces zones de texte ne sont pas accessibles par code. J'ai utilisé find control mais à aucun usage. C'est le code que j'utilise pour générer une zone de texte.get dynamically ajax textbox id

if (txtnobranches.Text != "") 
      { 
       if (Convert.ToInt32(txtnobranches.Text) != 0) 
       { 
        div_br.InnerHtml = "<table></table>"; 
        tbl_br.Controls.Clear(); 
        for (int i = 0; i < Convert.ToInt32(txtnobranches.Text); i++) 
        { 

         TableRow rowbr = new TableRow(); 
         TableCell cellname = new TableCell(); 
         cellname.Text = "Branch Location " + i.ToString(); 
         rowbr.Cells.Add(cellname); 
         TableCell cellvalue = new TableCell(); 
         cellvalue.Text = ""; 
         TextBox txt = new TextBox(); 
         txt.Text = ""; 
         txt.ID = "txtbranchloc" + i.ToString(); 
         cellvalue.Controls.Add(txt); 
         cellvalue.ID = "txtbranchloc" + i.ToString(); 
         rowbr.Cells.Add(cellvalue); 
         tbl_br.Rows.Add(rowbr); 
        } 
       } 
      } 
+0

'txt.ID =" txtbranchloc "+ i.ToString();' est-ce le rite ID? Pouvez-vous dire quel est votre but ultime? – kbvishnu

+0

ce code génèrent le texte-boîte avec l'id comme donné ci-dessus. Génération d'Afetr Je veux trouver texbox using cet identification mais ne peut pas le trouver renvoie null – sharad

+0

Êtes-vous 100% sûr que votre table est produite comme vous l'avez prévu? c'est à dire. toutes vos lignes de table et cellules et texboxes sont affichées. Si c'est le cas, je suggère d'aller dans votre navigateur pour "inspecter l'élément" et vérifier que vos identifiants sont correctement assignés. – Eric

Répondre

0

Vous pouvez accéder à l'élément par nom utilisant Request.Form [ « NameOfFormControl »] Vous devrez faire peu de changements dans le code.

javascript

txt.Name = "txtbranchloc" + i.ToString(); 

Dans Code Derrière

Remarque: Assurez-vous que vous y accédez à postback sinon vous obtenez null

if (Page.IsPostBack) 
{ 
    string firstTxtVal = Request.Form["txtbranchloc0"].ToString(); 
    string secondTxtVal = Request.Form["txtbranchloc1"].ToString(); 
} 

Using Request.Form Collection