Saya mengalami masalah saat mencoba mengisi daftar dropdown dari database. Ketika saya mencoba mengatur sumber data, saya tidak dapat menemukan kontrol dropdown, itu ada di DetailsView jadi saya pikir itu mungkin ada hubungannya dengan itu hanya dibuat ketika dalam mode edit. Ia masih mengatakan itu dalam mode saat ini ketika saya sedang mengedit, jadi tidak yakin apa yang terjadi di sana.
Berikut kode dari file 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>
Dan ini dari kode di belakangnya:
ArrayList regionsList = BPBusiness.getRegions();
if (DetailsView1.CurrentMode == DetailsViewMode.Edit)
{
DropDownList ddlRegions = (DropDownList)DetailsView1.FindControl("RegionDropdownList");
if (ddlRegions != null)
{
ddlRegions.DataSource = regionsList;
ddlRegions.DataBind();
}
}