2009-11-06 30 views
1

我有一個主客戶的詳細信息頁面。從列表中選擇一個客戶,並打開詳細信息視圖,包括名稱,地址等。如何在DetailsView中執行數據查找字段?

我被要求添加一個列出銷售代表服務該客戶的字段。

我想要新字段持有SalesRep表的外鍵:SalesRepID。一個整數。

我不確定如何「連線」ItemTemplate字段以在標籤中顯示銷售代表名稱。也不知道可能的銷售代表的EditItemTemplate下拉列表

我知道我需要創建一個數據源來將銷售代表檢索到數據集中。

我們稱之爲「SQL_Reps_source」。

一個DropDownList似乎只喜歡一個值的列表,似乎並沒有像HashTable或SortedList那樣處理Keys和Values。

有關如何解決這個問題的任何建議?

感謝

+0

查看我的近期評論。 – Phaedrus 2009-11-10 18:51:48

回答

2

下面的示例添加一個DropDownList到DetailsView控件的EditItemTemplate裏。 DataSourceID被設置爲檢索銷售代表名稱和ID的數據源控件。

<asp:TemplateField HeaderText="Sales Rep"> 
    <EditItemTemplate> 
     <asp:SqlDataSource ID="SqlDataSource" runat="server" 
      ConnectionString="<%$ ConnectionStrings:MyConnectionString %>" 
      SelectCommand="SELECT SalesRepID, SalesRepName FROM SalesReps"> 
     </asp:SqlDataSource> 
     <asp:DropDownList ID="DropDownList" Runat="server" 
      DataTextField="SalesRepName" DataValueField="SalesRepID"  
      SelectedValue='<%# Bind("SalesRepID") %>' 
      DataSourceID="SqlDataSource"> 
     </asp:DropDownList> 
    </EditItemTemplate> 
    <ItemTemplate> 
     <asp:Label ID="Label" Runat="server" 
      Text='<%# Bind("SalesRepName") %>'></asp:Label> 
    </ItemTemplate> 
</asp:TemplateField> 
+0

問題:標籤如何從綁定的數據集中找到合適的銷售代表? 例如,假設客戶記錄的SalesRepID爲15,存儲在CompanyRepID字段中。這是銷售代表表格中的Frank Jones。 那麼ItemTemplate標籤如何從100個salesreps的數據集中獲得「Frank Jones」?不要,你不得不在某處做實際的「查找」嗎? – BornInChicago 2009-11-06 13:51:37

+0

您提到了您爲客戶使用「主 - 細節」視圖。 DetailsView綁定到一個數據源,該數據源使用其SelectCommand中指定的查詢來查找記錄。我假設我們的主人通過參數傳遞客戶的id來查找detailsview的數據源。我可以提供一個更完整的例子,你想。 – Phaedrus 2009-11-10 18:50:37

0
  1. 出於顯示的目的 - 返回銷售代表的名稱,而不是ID

  2. 的DropDownList(DDL)可以處理的值和鍵就好了,命名是有點過雖然。 ddl.DataTextField屬性將保存Name,ddl.DataValueField屬性將保存該ID。 (有關詳細信息,請參見this answer

  3. 在EditTemplate中,您需要按上述填充DropDown,然後將其SelectedValue設置爲quesion中的銷售代表編號。

希望這會有所幫助。

0

當您綁定的下拉列表做到這一點:

ddl.DataSource = SQL_Reps_source; 
ddl..DataTextField = "fullname"; 
ddl..DataValueField = "id"; 
相關問題