2011-08-05 5 views
0

FormViewで動作するドロップダウンリストコントロールを取得しようとしています。私は、リストを特定のテーブルのフィルターされたビューにして、編集中のデータのフィールドにバインドする必要があります。私はプログラムで項目データを設定しようとしましたが、動作するアリは のデータバインディングが動作しません。データベースにnullを挿入しようとしています。FromViewコントロールのDropDownListの使用

これは私が試したコードです。私は他のいくつかのイベントで同じことをやろうとしましたが、まだデータベースに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 

答えて

0

私は、コントロールのものを結合するすべてのデータを取り、ちょうど手動でそれを行うには容易になるだろう決めます。コードをこれに変更しました。

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 
関連する問題