如何构建ListView并从代码后面填充它

本文关键字:代码 填充 ListView 何构建 构建 | 更新日期: 2023-09-27 18:03:32

我想从代码后面填充我的ListView想知道如何构建字段。我看到了这个例子,现在我想知道构建ListView字段的唯一方法是使用表。如果没有,还有什么其他方法可以做到这一点?我只尝试用数据源填充ListView,如下所示:

ListView1.DataSource = ds;
ListView1.DataBind();

但是它给了我一个错误:

ItemTemplate必须在ListView 'ListView1'上定义。

ListView的最佳使用方法是什么?只有当我使用ListView1.DataBind();

时才会发生错误

PS:我只需要一个行来显示,所以如果有人比ListView有更好的控制使用,我正在阅读。

现在我试着这样做:

<asp:ListView ID="ListView1" runat="server">
    <LayoutTemplate>
       <table border="0" cellpadding="1">
           <tr style="background-color: #E5E5FE">
              <th align="left"><asp:LinkButton ID="lnkResp" runat="server"></asp:LinkButton></th>
              <th align="left"><asp:LinkButton ID="lnkProj" runat="server"></asp:LinkButton></th>
              <th align="left"><asp:LinkButton ID="lnkFunc" runat="server"></asp:LinkButton></th>
              <th<></th>
           </tr>
       </table>
    </LayoutTemplate>
    <ItemTemplate>
       <tr>
          <td><asp:Label runat="server" ID="lblResp"><%#Eval("responsavel") %></asp:Label></td>
          <td><asp:Label runat="server" ID="lblProj"><%#Eval("projeto") %></asp:Label></td>
          <td><asp:Label runat="server" ID="lblFunc"><%#Eval("funcionalidade") %></asp:Label></td>
       </tr>
     </ItemTemplate>
</asp:ListView>

但是我得到了new错误:

An item placeholder must be specified on ListView 'ListView1'.
Specify an item placeholder by setting a control's ID property to "itemPlaceholder".
The item placeholder control must also specify runat="server".

如何构建ListView并从代码后面填充它

在您的LayoutTemplate中,您需要在table标签中添加<asp:PlaceHolder runat="server" ID="itemPlaceholder" />

 <LayoutTemplate>
   <table border="0" cellpadding="1">
       <tr style="background-color: #E5E5FE">
          <th align="left"><asp:LinkButton ID="lnkResp" runat="server"></asp:LinkButton></th>
          <th align="left"><asp:LinkButton ID="lnkProj" runat="server"></asp:LinkButton></th>
          <th align="left"><asp:LinkButton ID="lnkFunc" runat="server"></asp:LinkButton></th>
          <th<></th>
       </tr>
       <asp:PlaceHolder runat="server" ID="itemPlaceholder" />
   </table>
</LayoutTemplate>