Выбор элементов раскрывающегося списка "ДИНАМИЧНЫЙ" из таблицы - PullRequest
0 голосов
/ 08 июня 2011

// Код BehindFile

public void Button1_Click(object sender, EventArgs e)
 {
             while (reader.Read())
         {

            DropDownList ddl = new DropDownList();
             string[] s = { "Present", "Absent1", "Absent2", "Absent3" };
             for (int i = 0; i < 3; i++)
             {
                 ddl.Items.Add(s[i]);
             }
             ddl.ID = "ddl";
             TableCell c2 = new TableCell();
             c2.Controls.Add(ddl);
             r.Cells.Add(c2);
             Table1.Rows.Add(r);
            }
 }

 public void Button2_Click1(object sender, EventArgs e)

 {

         foreach (TableRow tr in Table1.Controls)
         {
             foreach (TableCell tc in tr.Controls)
             {
                 if (tc.Controls[2] is DropDownList)
                {
                 Response.Write(((DropDownList)tc.Controls[2]).SelectedItem.Text+" ");
                }
             }
             Response.Write("<br/>");
         }

Проблема связана с выбором элементов раскрывающегося списка. Я не смог напечатать соответствующие значения выбранного элемента. Кто-нибудь может помочь?

1 Ответ

0 голосов
/ 08 июня 2011

Проверьте tc.Controls [2], когда вы находитесь в последнем вложенном foreach. Возможно ли, что ваш выпадающий список является чем-то другим, чем третий элемент управления?

Я не вижу причин, которые заставили бы его быть третьим контролем в этой Клетке.

Вам, вероятно, было бы лучше сделать что-то вроде этого:

if(tc.FindControl("ddl") != null)
{
   Response.Write(((DropDownList)tc.FindControl("ddl")).SelectedItem.Text+" ");
}

вместо:

 if (tc.Controls[2] is DropDownList)
 {
    Response.Write(((DropDownList)tc.Controls[0]).SelectedItem.Text+" ");
 }
...