mam kontrolę ASP.Net RadioButtonList z AutoPostBack wartość true. Mam również funkcję OnSelectedIndexChanged, która jest wywoływana za każdym razem, gdy użytkownik zmienia zaznaczenie. Wreszcie, użytkownik jest zobowiązany do dostarczania informacji wymaganych dla tej kontroli, więc mam wybór domyślnego, gdy użytkownik dotrze na page--ASP.Net AJAX UpdatePanel nie potrafi SelectedIndexChanged zdarzenie wyzwalające
<asp:RadioButtonList ID="rblHighestDegree" runat="server" AutoPostBack="true"
onselectedindexchanged="rblHighestDegree_SelectedIndexChanged">
<asp:listitem Runat="server" Text="Master's Degree" Selected="True" />
<asp:listitem Runat="server" Text="Doctorate" />
</asp:RadioButtonList>
W przykładowym kodzie powyżej, gdy użytkownik przechodzi z domyślnego wybór (np. "Master's Degree") do innej opcji (np. "Doktorat"), następuje wywołanie zdarzenia SelectedIndexChanged. Następnie, jeśli użytkownik zmieni zdanie, a następnie wybierze oryginalną opcję domyślną, zdarzenie SelectedIndexChanged zostanie ponownie uruchomione. Działa to dokładnie tak, jak było to zamierzone i oczekiwane.
mam drugą kontrolę, która włączyć lub wyłączyć, w zależności od wyboru powyżej, w kodzie-za ...
<asp:ScriptManager ID="scriptmanager1" runat="server" />
<asp:UpdatePanel ID="updatepanel1" runat="server">
<ContentTemplate>
<asp:RadioButtonList ID="rdlYearsOfStudy" runat="server" Enabled="false">
<asp:listitem Runat="server" Text="Less than 3 years" />
<asp:listitem Runat="server" Text="3 - 4 years" />
<asp:listitem Runat="server" Text="5 - 6 years" />
</asp:RadioButtonList>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="rblHighestDegree" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
Problem mam tylko występuje tylko po Umieściłem to drugie sterowanie w ramach Ajax Update ASP.Net, aby włączyć asynchroniczny oddzwonienie (jak pokazano powyżej). Gdy to zrobię, oryginalna kontrolka RadioButtonList będzie odkładać tylko po wybraniu elementu ListItem, który był , a nie wybrany domyślnie po pojawieniu się użytkownika na stronie. Jeśli użytkownik wybierze pierwotny wybór domyślny, odświeżenie nie nastąpi.
Aby wyjaśnić, jeśli ogłaszanie zwrotne bez umieszczania odpowiedniego drugiego sterowania w ASP.Net AJAX UpdatePanel, a następnie SelectedIndexChanged działa bez względu na RadioButtonList ListItem użytkownik wybiera. Z drugiej strony, po umieszczeniu kontrolki wewnątrz UpdatePanel, aby zastosować AsyncPostBackTrigger, oddzwonienie ma miejsce tylko w przypadku wyborów innych niż domyślne ListItems.
Więcej informacji, które mogą być istotne, to to, że koduję w Microsoft Visual Studio 2008, a kontrolka UpdatePanel, której używam, jest częścią Microsoft AJAX Libary (nie jest to AJAX Control Toolkit ASP.NET).
Byłbym wdzięczny za wszelkie informacje, jak uzyskać ASP.Net AJAX działać tak, że mogę uzyskać SelectedIndexChanged zdarzenia do ognia, gdy użytkownik wybierze domyślne lub nie domyślne ListItems w RadioButtonList. Dla zapisu próbowałem ustawić domyślną selekcję RadioButtonList w zdarzeniu page_load, ale to nie pomogło.
Z góry dziękuję za wszelką pomoc!
Zauważ, że próbowałem również usunąć wyzwalacze zdefiniowane na stronie aspx, a zamiast tego zarejestrowałem kontrolkę RadioButtonList w zdarzeniu page_load: "scriptmanager1.RegisterPostBackControl (rblHighestDegree);" Niestety, podejście to spowodowało dokładnie to samo zachowanie, na które skarżyłem się powyżej. – cjo30080
Jeśli spojrzysz na wygenerowany kod HTML, zobaczysz, że domyślne wybrane radio nie ma opcji onclick, aby wywoływać __doPostBack. –