2011-05-13 19 views
10

tengo un menú desplegable que completa el evento de carga de página.lista desplegable de llamadas El índice seleccionado cambió el evento manualmente

private void FillSponsor() 
    { 
     ddlSponsor.DataSource = Db.VCT_SPONSORs.Where(x => x.IS_ACTIVE.GetValueOrDefault() && x.IS_APPROVED.GetValueOrDefault()); 
     ddlSponsor.DataBind(); 
    } 

Ahora lo que quiero es unir otro menú desplegable con el primer valor del menú desplegable anterior. mi segundo desplegable es:

protected void ddlSponsor_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     ddlDivision.DataSource = Db.VCT_SPONSOR_DIVISIONs.Where(x => x.SPONSOR_ID==SponsorID); 
     ddlDivision.DataBind(); 
     ddlDivision.Items.Insert(0, new ListItem("All", "0")); 
    } 

Mi problema es cómo llamar ddlSponsor_SelectedIndexChanged caso del método FillSponsor. Mis dos menús desplegables están en paneles de actualización.

Respuesta

18

¿Quieres decir cómo llamarías al método?

ddlSponsor_SelectedIndexChanged(this, EventArgs.Empty); 
1

En su lugar, puede utilizar DateBound Event. como ...

protected void ddlSponsor_DataBound(object sender, EventArgs e) 
{ 
    ddlDivision.DataSource = Db.VCT_SPONSOR_DIVISIONs.Where(x => x.SPONSOR_ID==SponsorID); 
    ddlDivision.DataBind(); 
    ddlDivision.Items.Insert(0, new ListItem("All", "0")); 
} 
0

Creo que su problema principal es tener controles en paneles de actualización por separado.

http://forums.asp.net/t/1426233.aspx

Ejemplo de código a partir de ese enlace:

<asp:UpdatePanel runat="server" ID='asdsd' UpdateMode="Conditional"> 
<ContentTemplate> 
    ...DropDownList1... 
</ContentTemplate> 

<Triggers> 
    <asp:AsyncPostBackTrigger ControlID='DropDownList2' EventName='SelectedIndexChanged' /> 
</Triggers> 

creo que lo que está después es AsyncPostBackTriggers, y no se olvide UpdateMode = "condicional".

Cuestiones relacionadas