Динамически создаваемый DropDownList не вызывает событие.да, Autopostback установлен в TRUE - PullRequest
0 голосов
/ 25 февраля 2011

Ниже приведен мой код для динамического выпадающего списка. Он генерирует HTML правильно. Тем не менее, событие не сработало. И когда я изменяю имя события на «onchange», это выдает ошибку компиляции, говорящую, что он не может найти скрипт Это там, в моем коде позади.

Кроме того, я добавляю это в событие страницы OnInit.

pValueCmbBox.Attributes.Add("runat", "server");
pValueCmbBox.SelectedIndexChanged += new EventHandler(ddlParent_SelectedIndexChanged);
pValueCmbBox.Attributes.Add("OnSelectedIndexChanged", "ddlParent_SelectedIndexChanged");
pValueCmbBox.Attributes.Add("AutoPostBack", "True");
  1. Почему не запускается OnSelectedIndexChanged?
  2. Является ли "onchange" только для вызова javascript?
  3. Должен ли я реализовать это как ASCX?

Ответы [ 2 ]

0 голосов
/ 30 августа 2011

1) Это не работает, потому что вы не добавляете атрибут "AutoPostBack" так, как вы должны.

pValueCmbBox.Attributes.Add("runat", "server"); //doesn't make sense...it's just for decoration...because you can't use in page behind code
pValueCmbBox.SelectedIndexChanged += new EventHandler(ddlParent_SelectedIndexChanged); //this line it's okay
pValueCmbBox.Attributes.Add("OnSelectedIndexChanged", "ddlParent_SelectedIndexChanged"); //this it's not necessary at all...because you already specified through pValueCmbBox.SelectedIndexChanged
pValueCmbBox.Attributes.Add("AutoPostBack", "True"); //this is the problem

Как вы можете видеть в здесь, SelectedIndexChanged"Происходит, когда выбор из элемента управления списком изменяется между публикациями на сервере.",Итак, у вас была хорошая идея относительно AutoPostBack = true;Вы должны были написать:

pValueCmbBox.AutoPostBack = true;

И теперь для задачи runat="server" вы можете настроить свою страницу за функцией следующим образом:

protected void ddlParent_SelectedIndexChanged(object sender, EventArgs e)
{
 DropDownList c = (DropDownList)sender; //this is your pValueCmbBox that you set it in OnInit
 //more code here
}

2) onchangeпредназначен для javascript, но для c # / vb вы можете использовать OnTextChanged
3) Вы можете сделать это, как вы уже пытались ... или так, как я вам сказал.:)

0 голосов
/ 25 февраля 2011

Чтобы ответить на мой собственный вопрос ...

Я закончил тем, что сделал из него ASCX, и теперь он отлично работает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...