Как получить динамически создаваемое значение текстового поля

1

Я хочу получить динамически созданное значение текстового поля в asp.net

Это код, который я создал в этом текстовом поле кода, но когда я буду вводить значение в тексте и извлекать значение из динамически созданного текстового поля, он дает ошибку

В экземпляре объекта не задана ссылка на объект

Ниже мой код...

protected void Page_Init(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        //Generate initial textboxes 
        GenerateButton_Click(sender, e);
    }
}
protected void GenerateButton_Click(object sender, EventArgs e)
{
    //Generate textboxes 
    int z = int.Parse(HowManyToGenerateTextBox.Text);

    Panel1.Controls.Clear();

    for (int i = 0; i < z; i++)
    {
        TextBox s = new TextBox();
        s.ID = "tb" + i.ToString();
        Session[s.ID] = s;
        Panel1.Controls.Add(s);
    }
}
protected void CalculateButton_Click(object sender, EventArgs e)
{
    //Calculate sum 
    int sum = 0;

    for (int i = 0; i < Session.Count; i++)
    {
        TextBox txt = (TextBox)Panel1.FindControl("tb" + i.ToString());
        ResultLabel.Text = txt.Text;


        if (ResultLabel.Text != null)
            sum += int.Parse(ResultLabel.Text);
    }

    ResultLabel.Text = sum.ToString();
}
  • 0
    В чем ошибка? (О, нулевая ссылка, я вижу). Что-то - ничто: вам нужно выяснить, где это происходит, и вы узнаете, что это такое. Отладка, шаг за шагом, и посмотреть, какой объект является null .
  • 0
    И где происходит ошибка?
Показать ещё 1 комментарий
Теги:

2 ответа

1

Я думаю, что проблема в этой строке

for (int i = 0; i < Session.Count; i++)

сессия всегда содержит другие параметры

сравните Session.Count с z в методе GenerateButton_Click. Я полагаю, что они разные

0

Привет друг Вот ответ

 protected void Page_Load(object sender, EventArgs e)
{
    if (Page.IsPostBack)
        GenerateButton_Click(sender, e);
}


public TextBox[] s;

protected void GenerateButton_Click(object sender, EventArgs e)
{

  int z = Convert.ToInt32(HowManyToGenerateTextBox.Text);
  Panel1.Controls.Clear();
  Array.Resize(ref s, z);
  for (int i = 0; i < z; i++)
  {
      s[i] = new TextBox();
      s[i].ID = "tb" + i.ToString();
      s[i].Text = "tb" + i.ToString();
      Session[s[i].ID] = s;
      Panel1.Controls.Add(s[i]);
  }
}
protected void CalculateButton_Click(object sender, EventArgs e)
{
   ResultLabel.Text = s[0].Text;      
}

Вот также код http://www.codeproject.com/questions/854773/How-to-get-dynamically-created-textbox-value

Ещё вопросы

Сообщество Overcoder
Наверх
Меню