我在DetailsView的InsertItemTemplate里面放置了一个Dropdownlist控件。
在单击DetailsView的新建按钮后,页面显式Dropdownlist并没有被绑定数据,不知道为什么?
代码如下。
aspx
<asp:TemplateField HeaderText="学科门类" SortExpression="SubjectTypeName">
    <InsertItemTemplate>
        <asp:DropDownList ID="ddlInsertSubjectType" runat="server">
        </asp:DropDownList>
        <asp:HiddenField ID="hfInsertSubjectTypeName" runat="server">
        </asp:HiddenField>
        </InsertItemTemplate>
    <ItemTemplate>
        <asp:Label ID="lblSubjectTypeName" runat="server" Text='<%# Bind("SubjectTypeName") %>'></asp:Label>
    </ItemTemplate>
</asp:TemplateField>aspx.cs
protected void dvDegreeDiploma_ItemCommand(object sender, DetailsViewCommandEventArgs e)
{
        if (e.CommandName == "New")
        {
            dvDegreeDiploma.ChangeMode(DetailsViewMode.Insert);
            dvDegreeDiploma.DataBind();
        }
}protected void dvDegreeDiploma_ModeChanging(object sender, DetailsViewModeEventArgs e)
{
    if (e.NewMode == DetailsViewMode.Insert)
    {
          DropDownList ddlInsertSubjectType = (DropDownList)dvDegreeDiploma.FindControl("ddlInsertSubjectType");
          BindDdlSubjectType(ddlInsertSubjectType, string.Empty);
            
    }
}

解决方案 »

  1.   

    我用的是手工绑定的方式,不用datasource。
      

  2.   

       DropDownList1.DataTextField =""
       DropDownList1 .DataValueField =""
    这2个属性你有没有
      

  3.   

    这是我的 可以实现 你看一下protected void DvInsertDutyInfo_DataBound(object sender, EventArgs e)
        {
            DropDownList Dep_id = DvInsertDutyInfo.Rows[1].Cells[1].FindControl("DropDownList1") as DropDownList;
            Dep_id.DataSource = DataAccess.DataAccess.GetDA.Qurary("select * from Department");
            Dep_id.DataTextField = "Dep_name";
            Dep_id.DataValueField = "Dep_id";
            Dep_id.DataBind();
        }