我有一个代码块,它返回一个雇员对象列表 结果集包含多个员工记录。其中一个要素是EmployeeID 我需要使用EmployeeID填充listview(lstDepartment)。我怎么能这样做?
lstDepartment.DataSource = oCorp.GetEmployeeList(emp);
lstDepartment.DataBind()
答案 0 :(得分:3)
您还必须指定:
lstDepartment.DataSource = oCorp.GetEmployeeList(emp);
lstDepartment.DataTextField = "EmployeeID";
lstDepartment.DataValueField = "EmployeeID";
lstDepartment.DataBind()
答案 1 :(得分:1)
一种方法是使用匿名类型:
lstDepartment.DataSource = oCorp.GetEmployeeList(emp)
.Select(emp => new { emp.EmployeeID });
lstDepartment.DataBind();
修改:但您也可以选择所有列,但只覆盖一列。 ListView
不是ListBox
或DropDownList
。仅显示您使用的内容。所以如果你是ItemTemplate看起来像:
<ItemTemplate>
<tr runat="server">
<td>
<asp:Label ID="LblEmployeeID" runat="server" Text='<%# Eval("EmployeeID") %>' />
</td>
</tr>
...只显示EmployeeID
,无论你的DataSource
中有什么问题。
答案 2 :(得分:1)
您可以在ListView ItemTemplate
中提及要显示的内容
<asp:ListView ID="lstDepartment" runat="server">
<ItemTemplate>
<p> <%#Eval("EmployeeID") %> </p>
</ItemTemplate>
</asp:ListView>