2012-06-18 31 views
0

我已經創建了一個Web應用程序,我需要根據用戶輸入的數字生成文本框。我已經使用Ajax並動態創建了文本框,但是這些文本框無法從代碼隱藏中訪問。已經使用find control但沒有用。這是我用來生成文本框的代碼。獲取動態生成的Ajax文本框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();'這是ID儀式?你能說你的最終目標是什麼? – kbvishnu

+0

此代碼生成文本框與上面給出的id.Afetr genrateing我想使用此id找到texbox但無法找到它返回null – sharad

+0

您是否100%確定您的表是按照您的意圖生成的?即。所有的表格行和單元格和texboxes都會顯示出來。如果他們是我建議進入您的瀏覽器「檢查元素」,並檢查以確保您的ID也正確分配。 – Eric

回答

0

您可以按名稱使用的Request.Form [「NameOfFormControl」]你將不得不作出的代碼變化不大訪問元素。

在javascript中

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

在代碼隱藏

注:請確保您可以訪問它在回傳,否則你會得到空

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

Using Request.Form Collection