2012-06-05 115 views
0

我有一些數組來保存我的控件。當調用一個函數初始化數組並將數組保存到我的控件中。從動態文本框中獲取值

代碼:

private Label[] lblName; 
    private TextBox[] txtName; 
    private Label[] lblSurname; 
    private TextBox[] txtSurname; 
    private Label[] lblInstitution; 
    private TextBox[] txtInstitution; 
    private Label[] lblCountry; 
    private TextBox[] txtCountry; 
    private Label[] lblEmail; 
    private TextBox[] txtEmail; 
    private PlaceHolder PlaceHolder1; 


    public int NumberOfOtherAuthors() 
    { 
     Int32 index = Convert.ToInt32(NumberList.SelectedValue); 
     return index; 
    } 

    public void GUIofOtherAuthor() 
    { 
     int authors; 
     int i = 0; 
     int j = 1; 


     authors = NumberOfOtherAuthors(); 
     lblName = new Label[authors]; 
     txtName = new TextBox[authors]; 
     lblSurname = new Label[authors]; 
     txtSurname = new TextBox[authors]; 
     lblInstitution = new Label[authors]; 
     txtInstitution = new TextBox[authors]; 
     lblCountry = new Label[authors]; 
     txtCountry = new TextBox[authors]; 
     lblEmail = new Label[authors]; 
     txtEmail = new TextBox[authors]; 
     PlaceHolder1 = new PlaceHolder(); 


     for (i = 0; i < authors; i++) 
     { 
      Label authorInformation = new Label(); 
      authorInformation.Text = "Information for Author " + j.ToString() + " :"; 

      lblName[i] = new Label(); 
      lblName[i].Text = "Name:"; 
      txtName[i] = new TextBox(); 
      lblSurname[i] = new Label(); 
      lblSurname[i].Text = "Surname:"; 
      txtSurname[i] = new TextBox(); 
      lblInstitution[i] = new Label(); 
      lblInstitution[i].Text = "Institution:"; 
      txtInstitution[i] = new TextBox(); 
      lblCountry[i] = new Label(); 
      lblCountry[i].Text = "Country:"; 
      txtCountry[i] = new TextBox(); 
      lblEmail[i] = new Label(); 
      lblEmail[i].Text = "Email:"; 
      txtEmail[i] = new TextBox(); 

      PlaceHolder1.Controls.Add(new LiteralControl("<table>")); 
      PlaceHolder1.Controls.Add(new LiteralControl("<span style=\"font-weight:bold;\" ")); 
      PlaceHolder1.Controls.Add(authorInformation); 
      PlaceHolder1.Controls.Add(new LiteralControl("</span>")); 
      PlaceHolder1.Controls.Add(new LiteralControl("<tr><td>")); 
      PlaceHolder1.Controls.Add(lblName[i]); 
      PlaceHolder1.Controls.Add(new LiteralControl("</td><td>")); 
      PlaceHolder1.Controls.Add(txtName[i]); 
      PlaceHolder1.Controls.Add(new LiteralControl("</td></tr>")); 
      PlaceHolder1.Controls.Add(new LiteralControl("<tr><td>")); 
      PlaceHolder1.Controls.Add(lblSurname[i]); 
      PlaceHolder1.Controls.Add(new LiteralControl("</td><td>")); 
      PlaceHolder1.Controls.Add(txtSurname[i]); 
      PlaceHolder1.Controls.Add(new LiteralControl("</td></tr>")); 
      PlaceHolder1.Controls.Add(new LiteralControl("<tr><td>")); 
      PlaceHolder1.Controls.Add(lblInstitution[i]); 
      PlaceHolder1.Controls.Add(new LiteralControl("</td><td>")); 
      PlaceHolder1.Controls.Add(txtInstitution[i]); 
      PlaceHolder1.Controls.Add(new LiteralControl("</td></tr>")); 
      PlaceHolder1.Controls.Add(new LiteralControl("<tr><td>")); 
      PlaceHolder1.Controls.Add(lblCountry[i]); 
      PlaceHolder1.Controls.Add(new LiteralControl("</td><td>")); 
      PlaceHolder1.Controls.Add(txtCountry[i]); 
      PlaceHolder1.Controls.Add(new LiteralControl("</td></tr>")); 
      PlaceHolder1.Controls.Add(new LiteralControl("<tr><td>")); 
      PlaceHolder1.Controls.Add(lblEmail[i]); 
      PlaceHolder1.Controls.Add(new LiteralControl("</td><td>")); 
      PlaceHolder1.Controls.Add(txtEmail[i]); 
      PlaceHolder1.Controls.Add(new LiteralControl("</td></tr>")); 
      PlaceHolder1.Controls.Add(new LiteralControl("</table><br /> ")); 
      Panel1.Controls.Add(PlaceHolder1); 

      j++; 
     } 
    } 

現在我想利用文本框的值在另一個函數public void UploadForm(){...}。 我嘗試

int i; 
int numberOfOtherAuthors = NumberOfOtherAuthors(); 

for(i=0; i<numberOfOtherAuthors; i++) 
{ 
    String a = txtname[i].text 
} 

文本框的值我要上傳到數據庫中,但讓我們說,我們將它們保存到一個字符串。 當我這樣做時,我有NullReferenceException。 那麼如何獲得這個文本框的價值? 謝謝

+0

這是一個醜陋的代碼,只是使用中繼器而不是... –

+0

重複:[如何從文本框中獲取值](http://stackoverflow.com/questions/10808314/how-to-get-value-從一個文本框) – Jeremy

+0

對不起,但我沒有找到解決這個問題。如果你能幫助我...我是新手到C#。 Thsnks – Jimmysnn

回答

1

我注意到你的UploadForm()函數引用txtname,而你的實際文本框聲明爲txtName。由於字段名稱區分大小寫,因此字段「txtname」(小寫字母'n')實際上沒有定義,所以它可能是您的動態頁面中NullReferenceException的原因。