Tengo un control ASP.Net RadioButtonList con AutoPostBack establecido en verdadero. También tengo una función OnSelectedIndexChanged que se invoca cada vez que un usuario cambia la selección. Por último, el usuario está obligado a proporcionar la información solicitada para este control, así que tengo una selección por defecto cuando el usuario llega a la page--ASP.Net AJAX UpdatePanel no puede desencadenar el evento SelectedIndexChanged
<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>
En el ejemplo de código anterior, cuando el usuario cambia desde el valor por defecto selección (por ejemplo, "Máster") a una opción diferente (por ejemplo, "Doctorado"), luego se desencadena el evento SelectedIndexChanged. Luego, si el usuario cambia de opinión y posteriormente selecciona la opción predeterminada original, el evento SelectedIndexChanged se activa nuevamente. Esto funciona exactamente como se esperaba y se espera.
que tienen un segundo control que puedo habilitar o inhabilitar, dependiendo de la selección anterior, en el código subyacente ...
<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>
El problema que estoy teniendo sólo se produce solamente después coloqué este segundo control dentro de un ASP.Net AJAX UpdatePanel para habilitar una devolución de datos asincrónica (como se muestra arriba). Una vez que hice esto, el control RadioButtonList original solo será devuelto cuando selecciono un ListItem que fue no seleccionado por defecto cuando el usuario llegó a la página. Si el usuario selecciona posteriormente la selección predeterminada original, la devolución de datos no se produce.
Para aclarar, si transfiero datos sin colocar el segundo control aplicable en un ASP.Net AJAX UpdatePanel, entonces SelectedIndexChanged funciona sin importar qué RadioButtonList ListItem el usuario selecciona. Por otro lado, después de colocar un control dentro de un UpdatePanel para aplicar AsyncPostBackTrigger, la devolución de datos solo ocurre para selecciones de ListItems no predeterminados.
Más información que podría ser relevante es que estoy codificando con Microsoft Visual Studio 2008, y el control UpdatePanel que estoy usando es parte de la Librería AJAX de Microsoft (no del Kit de herramientas de control AJAX de ASP.NET).
Agradecería cualquier idea sobre cómo hacer funcionar ASP.Net AJAX, de modo que pueda lograr que el evento SelectedIndexChanged se active cuando un usuario selecciona los ListItems predeterminados o no predeterminados en RadioButtonList. Para el registro, traté de configurar la selección predeterminada de RadioButtonList en el evento page_load, pero no ayudó.
¡Gracias de antemano por cualquier ayuda!
Tenga en cuenta que también intenté eliminar los desencadenantes definidos en la página aspx y, en su lugar, registré el control RadioButtonList en el evento page_load: "scriptmanager1.RegisterPostBackControl (rblHighestDegree);" Desafortunadamente, este enfoque resultó en el mismo comportamiento exacto del que me quejé anteriormente. – cjo30080
Si observa el código HTML generado, verá que la radio seleccionada por defecto no tiene un onclick configurado para llamar a __doPostBack. –