ฉันประสบปัญหาในการพยายามเติมรายการดรอปดาวน์จากฐานข้อมูล เมื่อฉันพยายามตั้งค่าแหล่งข้อมูล ฉันไม่พบตัวควบคุมแบบเลื่อนลง มันอยู่ใน DetailView ดังนั้นฉันคิดว่าอาจมีบางอย่างที่เกี่ยวข้องกับมันที่ถูกสร้างขึ้นเมื่ออยู่ในโหมดแก้ไขเท่านั้น ตอนที่ฉันกำลังแก้ไข มันยังบอกว่าอยู่ในโหมดปัจจุบัน เลยไม่แน่ใจว่าเกิดอะไรขึ้น
นี่คือรหัสจากไฟล์ 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>
และนี่คือจากโค้ดด้านหลัง:
ArrayList regionsList = BPBusiness.getRegions();
if (DetailsView1.CurrentMode == DetailsViewMode.Edit)
{
DropDownList ddlRegions = (DropDownList)DetailsView1.FindControl("RegionDropdownList");
if (ddlRegions != null)
{
ddlRegions.DataSource = regionsList;
ddlRegions.DataBind();
}
}