2012-06-05 4 views
0

Я hava некоторые массивы, чтобы сохранить мои элементы управления. когда вызывается функция инициализации массивов и сохраняет в массивах мои элементы управления.получить значение из динамического Текстовое поле

Код:

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 
} 

Значения Textboxes Я хочу, чтобы загрузить в базу данных, но, скажем, мы храним их в строку. Когда я это делаю, у меня есть исключение NullReferenceException. Итак, как получить значение этих текстовых полей ??? Благодаря

+0

это один уродливый код, просто используйте ретранслятор вместо ... –

+0

Дубликат: [Как получить значение из текстового поля] (http://stackoverflow.com/questions/10808314/how-to-get-value- from-a-textbox) – Jeremy

+0

извините, но я не нашел решение этой проблемы. если вы можете мне помочь ... я новичок в C#. Thsnks – Jimmysnn

ответ

1

Я заметил, что ваша UploadForm() функции ссылается txtname, в то время как фактическая TextBox объявлена ​​txtName. Поскольку имена полей чувствительны к регистру, поле «txtname» (нижний регистр «n») фактически не определено, поэтому, вероятно, это является причиной вашего исключения NullReferenceException на вашей динамической странице.

Смежные вопросы