3

我有一个返回员工对象列表的代码块。
结果集包含多个员工记录。其中一个元素是 EmployeeID。
我只需要使用 EmployeeID 填充 listview (lstDepartment)。我怎样才能做到这一点?

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

3 回答 3

3

您还必须指定:

     lstDepartment.DataSource = oCorp.GetEmployeeList(emp);
     lstDepartment.DataTextField = "EmployeeID";
     lstDepartment.DataValueField = "EmployeeID";
     lstDepartment.DataBind()
于 2012-07-29T21:57:36.050 回答
1

一种方法是使用匿名类型:

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

编辑:但您也可以选择所有列,但只显示一个。AListView不是ListBoxDropDownList。只会显示您使用的内容。所以如果你是 ItemTemplate 看起来像:

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

...只EmployeeID显示 ,无论您的DataSource.

于 2012-07-29T21:57:20.113 回答
1

您可能会提到要在您ItemTemplate的 ListView中显示的内容

<asp:ListView ID="lstDepartment" runat="server">
   <ItemTemplate>
     <p>  <%#Eval("EmployeeID") %> </p>
   </ItemTemplate>
</asp:ListView>
于 2012-07-29T21:57:34.957 回答