데이터베이스에서 드롭 다운 목록을 채우는 데 문제가 있습니다. 드롭 다운 컨트롤을 찾을 수없는 데이터 소스를 설정하려고 할 때 DetailsView에 있으므로 편집 모드 일 때만 생성되는 것과 관련이있을 수 있습니다. 여전히 편집 중이면 현재 모드라고 말하며, 거기에서 무슨 일이 일어나는지 확실하지 않습니다. 여기 DetailsView 내 DropDownList 바인딩
은 영문 파일의 코드입니다 :<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>
그리고 이것은 뒤에있는 코드에서이다 :
protected void DetailsView1_ItemCreated(object sender, EventArgs e)
{
ArrayList regionsList = BPBusiness.getRegions();
if (DetailsView1.CurrentMode == DetailsViewMode.Edit)
{
DropDownList ddlRegions = (DropDownList)DetailsView1.FindControl("RegionDropdownList");
if (ddlRegions != null)
{
ddlRegions.DataSource = regionsList;
ddlRegions.DataBind();
}
}
}
에 기억 itemcreated 방법으로 그 일을
ArrayList regionsList = BPBusiness.getRegions();
if (DetailsView1.CurrentMode == DetailsViewMode.Edit)
{
DropDownList ddlRegions = (DropDownList)DetailsView1.FindControl("RegionDropdownList");
if (ddlRegions != null)
{
ddlRegions.DataSource = regionsList;
ddlRegions.DataBind();
}
}
뒤에 존재 에서? –
Page_Load에 있습니다. – annelie