Je rencontre des problèmes lors de la tentative de remplissage d'une liste déroulante à partir de la base de données. Lorsque j'essaie de définir la source de données, je ne trouve pas le contrôle déroulant, il est dans un DetailsView donc je pense que cela pourrait avoir quelque chose à voir avec elle étant créé seulement quand il est en mode édition. Il dit toujours qu'il est en mode courant quand je suis en train de l'éditer, donc je ne suis pas sûr de ce qui se passe là-bas.Liaison d'une DropDownList dans DetailsView
Voici le code du fichier ASPX:
<asp:DetailsView id="DetailsView1" runat="server" AutoGenerateRows="false" DataSourceID="myMySqlDataSrc" DataKeyNames="id" AutoGenerateDeleteButton="True" AutoGenerateEditButton="True" AutoGenerateInsertButton="False" >
<Fields>
<asp:TemplateField HeaderText="Region">
<ItemTemplate><%# Eval("region_name") %></ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="RegionDropdownList" runat="server" SelectedValue='<%# Bind("region_id")%>' />
</EditItemTemplate>
</asp:TemplateField>
</Fields>
</asp:DetailsView>
Et ceci est le code sous-jacent:
ArrayList regionsList = BPBusiness.getRegions();
if (DetailsView1.CurrentMode == DetailsViewMode.Edit)
{
DropDownList ddlRegions = (DropDownList)DetailsView1.FindControl("RegionDropdownList");
if (ddlRegions != null)
{
ddlRegions.DataSource = regionsList;
ddlRegions.DataBind();
}
}
Quelle méthode fait votre échantillon à partir du code existe derrière dans? –
C'est dans le Page_Load. – annelie