Раскрывающийся список, созданный кодом для обновления страницы

1

Я пытаюсь создать список DDL используя код позади, как вы можете видеть здесь:

public List<DropDownList> ddll = new List<DropDownList>();
for (int i = 0; i < 15; i++)
{
    DropDownList ansList = new DropDownList();
    ansList.AutoPostBack = false;
    ansList.DataSource = values1;
    ansList.DataBind();
    ddll.Add(ansList);
 }

Как вы можете видеть, я установить autopostback атрибут false.Но это не работает мои страницы обновляются, когда пользователь изменяет selectedindex.

Я добавил DDL используя это:

Span1.Controls.Add(ddll[0]);
Span2.Controls.Add(ddll[1]);
Span3.Controls.Add(ddll[2]);
Span4.Controls.Add(ddll[3]);
Span5.Controls.Add(ddll[4]);
Span6.Controls.Add(ddll[5]);
Span7.Controls.Add(ddll[6]);
Span8.Controls.Add(ddll[7]);
Span9.Controls.Add(ddll[8]);
Span10.Controls.Add(ddll[9]);
Span11.Controls.Add(ddll[10]);
Span12.Controls.Add(ddll[11]);
Span13.Controls.Add(ddll[12]);
Span14.Controls.Add(ddll[13]);
Span15.Controls.Add(ddll[14]);

В html-коде у меня есть это:

<span style="color:#ea0000;padding:0 10px;" id="Span6" runat="server"></span>
Теги:
page-refresh
ispostback
runatserver

2 ответа

1
Лучший ответ

Сначала вы устанавливаете AutoPostBack в false а затем в true сразу после двух операторов. Значение false заменяется на true и теперь, когда выбранный индекс изменен, он должен сделать обратную передачу.

ansList.AutoPostBack = false;
   //...    

ansList.AutoPostBack = true;

Редактировать Вы также можете использовать цикл, чтобы добавить список в промежутки, используя FindControl (идентификатор строки), чтобы получить пробелы по id.

for(int i=0; i < 15; i++)
   this.FindControl("Span"+i).Add(ddll[i]);
  • 0
    Извините, это был мой синтаксический сбой, я изменил его и снова та же ошибка
  • 0
    Постройте страницу и обновите ее, используя Ctrl + F5, она не должна выполнять обратную передачу
1

Посмотрите на свой код

       for (int i = 0; i < 15; i++)
        {
            DropDownList ansList = new DropDownList();
            ansList.AutoPostBack = false; // Here You have set it false
            ansList.DataSource = values1;
            ansList.DataBind();
            ansList.AutoPostBack = true; // Here You have set it true again
            ddll.Add(ansList);
        }

Ещё вопросы

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