ASP.NET DropDownList AutoPostback не работает - что я пропустил?
Я пытаюсь получить выпадающий список для AutoPostBack через UpdatePanel, когда выбранный элемент изменяется. Я немного схожу с ума от того, почему это не работает.
Есть ли у кого-нибудь быстрые идеи?
Страница ASPX:
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always" ChildrenAsTriggers="true" >
<ContentTemplate>
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" onselectedindexchanged="DropDownList1_SelectedIndexChanged">
<asp:ListItem>item 1</asp:ListItem>
<asp:ListItem>item 2</asp:ListItem>
</asp:DropDownList>
</ContentTemplate>
</asp:UpdatePanel>
Code-behind (я поставил точку останова на присваивании строки, чтобы захватить обратную передачу):
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
string s = "";
}
Редактировать:
Хорошо, теперь он у меня работает. Очень странно. Все, что для этого потребовалось, - перезапустить Visual Studio. Это того, что пугает меня как разработчика ;) я думаю, что видел подобное раньше, где VS "выходит из синхронизации" wrt сборки, которую он запускает.
К вашему сведению, я запускаю VS 2008 Web Developer Express.
Спасибо тем, кто ответил.
5 ответов:
Я смог заставить его работать с тем, что вы опубликовали. Это код, который я использовал... В основном то, что у вас было, но я делаю исключение.
<asp:ScriptManager ID="smMain" runat="server" /> <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always" ChildrenAsTriggers="true" > <ContentTemplate> <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" onselectedindexchanged="DropDownList1_SelectedIndexChanged"> <asp:ListItem>item 1</asp:ListItem> <asp:ListItem>item 2</asp:ListItem> </asp:DropDownList> </ContentTemplate> </asp:UpdatePanel> protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) { throw new NotImplementedException(); }
Я перепробовал множество вариантов, чтобы увидеть, есть ли что-то не так, но каждый раз возникало исключение.
Вы можете попробовать маршрут исключения, чтобы увидеть, происходит ли обратная передача, и это не проблема отладчика.
Одна из проблем может быть связана с Vista, а не с запуском Visual Studios от имени администратора. Я знаю это имеет тенденцию не допускать отладки.
Может быть, сборка, которую вы запускаете, не соответствует коду? Это может произойти, если вы "просмотрите в Browswer" и затем присоедините отладчик.