Je construis un contrôle aspom cutom à l'intérieur duquel j'ai deux listes déroulantes: companyIdSelection et productFamilySelection.I peuplent la companyIdSelection à Page_Load et afin de peupler la productFamilySelection en fonction de l'élément sélectionné dans companyIdSelection. J'utilise UpdatePanels pour y parvenir, mais pour une raison quelconque, chaque fois que je mets à jour companyIdSelection Page_Load est appelé (ce qui ne devrait se produire que lorsque la page entière est rechargée), la liste est à nouveau rechargée et l'élément utilisateur sélectionné est perdu (l'élément sélectionné est toujours du haut) le code de .IciUpdatePanel recharge toute la page
<asp:UpdatePanel ID="updateFamilies"
runat="server"
UpdateMode="Always">
<ContentTemplate>
Company ID:<br>
<br></br>
<asp:DropDownList ID="companyIdSelection"
runat="server"
AutoPostBack="True"
OnSelectedIndexChanged="companyIdSelection_SelectedIndexChanged">
</asp:DropDownList>
<br></br>
Product Family:
<br></br>
<asp:DropDownList ID="productFamilySelection" runat="server"
AutoPostBack="True"
onselectedindexchanged="productFamilySelection_SelectedIndexChanged">
</asp:DropDownList>
<br>
</ContentTemplate>
</asp:UpdatePanel>
protected void Page_Load(object sender, EventArgs e)
{
this.companyIdSelection.DataSource = companyIds(); //companyIds returns the object containing the initial data items
this.companyIdSelection.DataBind();
}
protected void companyIdSelection_SelectedIndexChanged(object sender, EventArgs e)
{
// Page_Load is called again for some reason before this method is called, so it
// resets the companyIdSelection
EngDbService s = new EngDbService();
productFamilySelection.DataSource = s.getProductFamilies(companyIdSelection.Text);
productFamilySelection.DataBind();
}
En outre, j'ai essayé de définir le UpdateMode du UpdatePanel sur "Conditionnel" et d'ajouter un déclencheur asyncpostback mais le résultat était le même. Qu'est-ce que je fais de mal?
PS: Je résolu le problème de mise à jour, en utilisant Page.IsPostBack dans la méthode Page_Load, mais je ne voudrais encore éviter une publication complète si possible
Très bien, vous avez raison, j'ai mal compris. Merci :) –