Asp.net 在FromView控件中使用DropDownList

Asp.net 在FromView控件中使用DropDownList,asp.net,entity-framework,drop-down-menu,formview,Asp.net,Entity Framework,Drop Down Menu,Formview,我正在尝试让下拉列表控件在FormView中工作。我需要让列表成为某个表的过滤视图,并且仍然绑定到我正在编辑的数据中的字段。我试着用编程的方式设置条目数据,但是数据绑定不起作用 不起作用,它试图将null插入数据库 <asp:DropDownList ID="lstManagers" runat="server" OnDataBound ="ManagersLoad" SelectedValue='&

我正在尝试让下拉列表控件在FormView中工作。我需要让列表成为某个表的过滤视图,并且仍然绑定到我正在编辑的数据中的字段。我试着用编程的方式设置条目数据,但是数据绑定不起作用 不起作用,它试图将null插入数据库

            <asp:DropDownList ID="lstManagers" runat="server" 
                OnDataBound ="ManagersLoad"
                SelectedValue='<%# Bind("UserName") %>' Width="100%" 
                DataSourceID="TimeOff" DataTextField="UserName" DataValueField="UserName">
            </asp:DropDownList>


Protected Sub ManagersLoad(ByVal sender As Object, ByVal e As System.EventArgs)
    Dim lst As DropDownList = FormView1.FindControl("lstManagers")
    'get list of managers
    Using ef As New TimeOffData.TimeOffEntities
        For Each item As ListItem In lst.Items
            Dim li As ListItem = item
            item.Text = (From x In ef.TimeOffUsers Where x.UserName = li.Value Select x.FirstName & " " & x.LastName).FirstOrDefault
        Next
    End Using
End Sub
这是我试过的代码。我还尝试在其他几个事件中执行相同的操作,它仍然尝试将null插入数据库

            <asp:DropDownList ID="lstManagers" runat="server" 
                OnDataBound ="ManagersLoad"
                SelectedValue='<%# Bind("UserName") %>' Width="100%" 
                DataSourceID="TimeOff" DataTextField="UserName" DataValueField="UserName">
            </asp:DropDownList>


Protected Sub ManagersLoad(ByVal sender As Object, ByVal e As System.EventArgs)
    Dim lst As DropDownList = FormView1.FindControl("lstManagers")
    'get list of managers
    Using ef As New TimeOffData.TimeOffEntities
        For Each item As ListItem In lst.Items
            Dim li As ListItem = item
            item.Text = (From x In ef.TimeOffUsers Where x.UserName = li.Value Select x.FirstName & " " & x.LastName).FirstOrDefault
        Next
    End Using
End Sub

受保护的子管理器加载(ByVal sender作为对象,ByVal e作为System.EventArgs)
Dim lst As DropDownList=FormView1.FindControl(“lstManagers”)
'获取经理列表
将ef用作新的TimeOffData.TimeOffEntities
对于作为列表项的每个项,在lst.Items中
Dim li As ListItem=项目
item.Text=(从ef.TimeOffUsers中的x开始,其中x.UserName=li.Value选择x.FirstName&&&x.LastName)。FirstOrDefault
下一个
终端使用
端接头

我接受了控件中所有的数据绑定内容,并决定手动执行会更容易。我把密码改成了这个

Protected Sub FormView1_ItemInserting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.FormViewInsertEventArgs) Handles FormView1.ItemInserting
    Dim lst As DropDownList = FormView1.FindControl("lstManagers")
    e.Values.Item("ManagerName") = lst.SelectedValue
End Sub

Protected Sub ManagersLoad(ByVal sender As Object, ByVal e As System.EventArgs)
    Dim lst As DropDownList = FormView1.FindControl("lstManagers")
    'get list of managers
    Using ef As New TimeOffData.TimeOffEntities
        Dim mng = From x In ef.TimeOffUsers Where x.IsManager = True

        For Each item In mng
            lst.Items.Add(New ListItem(item.FirstName & " " & item.LastName, item.UserName))
        Next
    End Using
End Sub