2012-07-29 92 views
3

我有一個代碼塊,它返回一個員工對象列表。
結果集包含多個員工記錄。其中一個要素是EmployeeID。
我需要僅用EmployeeID填充listview(lstDepartment)。我怎樣才能做到這一點?在asp.net中填充列表框控件

lstDepartment.DataSource = oCorp.GetEmployeeList(emp); 
lstDepartment.DataBind() 

回答

3

你也必須指定此顯示:

 lstDepartment.DataSource = oCorp.GetEmployeeList(emp); 
    lstDepartment.DataTextField = "EmployeeID"; 
    lstDepartment.DataValueField = "EmployeeID"; 
    lstDepartment.DataBind() 
+0

ListView不是ListBox,它既沒有DataTextField也沒有DataValueField屬性。 – 2012-07-29 22:04:00

+0

我的錯誤@TimSchmelter ...我的控件是一個ListBox,而不是一個ListView。 – DotNetRookie 2012-07-29 22:19:20

1

的一種方法是使用匿名類型:

lstDepartment.DataSource = oCorp.GetEmployeeList(emp) 
           .Select(emp => new { emp.EmployeeID }); 
lstDepartment.DataBind(); 

編輯:但你也可以選擇所有列,但diplay只有一個。 A ListView不是ListBoxDropDownList。只會顯示您使用的內容。所以,如果你的ItemTemplate看起來像:

<ItemTemplate> 
    <tr runat="server"> 
    <td> 
     <asp:Label ID="LblEmployeeID" runat="server" Text='<%# Eval("EmployeeID") %>' /> 
    </td> 
    </tr> 

...只有EmployeeID顯示,無論whatelse是在你的DataSource

1

您可能會提什麼在你的ListView

ItemTemplate
<asp:ListView ID="lstDepartment" runat="server"> 
    <ItemTemplate> 
    <p> <%#Eval("EmployeeID") %> </p> 
    </ItemTemplate> 
</asp:ListView> 
+0

@TimSchmelter:啊!我應該讀得更好!感謝您用友好的方式指出:)刪除答案,因爲它現在不值得! – Shyju 2012-07-29 22:03:35