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) Вы можете сделать это, как вы уже пытались ... или так, как я вам сказал.:)