¿Cómo hacer funcionar evento SelectedIndexChanged con AutoPostBack=false? DropDownList

publicado por: Anonymous

quisiera me pudieran ayudar a usar un dropdownlist, y su evento SelectedIndexChanged, pero con la opción de AutoPostBack=false, porque cuando está en true me recarga toda la página, aquí está mi código, he intentado algunas cosas pero no he podido, cuando selecciono un item de la dropdownlist, no pasa nada.

ASP

<div class="form-control">
                    <asp:ScriptManager ID="ScriptManager1" runat="server" />
                    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                        <ContentTemplate>
                            <asp:DropDownList ID="ddlUsuarios" runat="server" Height="25px" Width="700px" CssClass="form-control-solid text" OnSelectedIndexChanged="ddlUsuarios_SelectedIndexChanged" AutoPostBack="true">
                            </asp:DropDownList>
                        </ContentTemplate>
                        <Triggers>
                            <asp:AsyncPostBackTrigger ControlID="ddlUsuarios" EventName="SelectedIndexChanged" />
                        </Triggers>
                    </asp:UpdatePanel>
                </div>

y C#

   protected void ddlUsuarios_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                NombreLista = ddlUsuarios.SelectedItem.Text;
                ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('" + NombreLista + "');", true);
            }
            catch (Exception ex)
            {}
        }

solución

Si quieres evitar recargar datos innecesarios cuando haga PostBack, puedes verificar si es un PostBack utilizando la propiedad IsPostBack.

Por ejemplo:

public void Page_Load(object sender, EventArgs e)
{
   if(IsPostBack == false)
   {
       //Cargar datos
   }
}

Entonces como el evento Change envia un PostBack, los datos no se cargaran de nuevo.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *