gpt4 book ai didi

asp.net - 如何动态分配数据源给listview

转载 作者:行者123 更新时间:2023-12-02 17:56:04 26 4
gpt4 key购买 nike

我在将数据源动态分配给 ListView 时遇到问题。

例如,我有 receiveBonuses(Bonus)、receedLeaves(Leave) 列表,我希望 ListView 根据用户单击的链接按钮显示这些列表项。

研究互联网和 stackoverflow.com 我发现了 3 个解决方案:

  1. 在 ListView 中使用转发器。但就我而言,我无法将其应用到我的案例中,我完全困惑了

  2. 使用嵌套 ListView 。我尝试这样做:



<p>
</p>

<pre><code> <asp:ListView ID = "bonuses" runat="server" DataSource ='<%# Eval("received_bonuses") %>' >
<ItemTemplate>

<tr>

<td><%# Eval("bonus_desc")%></td>

<td><%# Eval("bonus_type")%></td>

</tr>
</ItemTemplate>
<LayoutTemplate>

<table>

<tr>

<th>Bonus Description</th>

<th>Bonus Received Date</th>



</tr>

<tr ID="itemPlaceholder" runat="server" />

</table>

</LayoutTemplate>
</code></pre>

<p>

</p>

<pre><code> <table>

<tr>

<th>Bonus Description</th>

<th>Bonus Received Date</th>



</tr>

<tr ID="itemPlaceholder" runat="server" />

</table>

</LayoutTemplate>

</asp:ListView>


<br />
</code></pre>

在后面的代码中我尝试这样写:
protected void dataBound(object sender, ListViewItemEventArgs e)
{
this.DataBindChildren();



<pre><code> }
</code></pre>

它没有给出任何错误,只是不起作用。

  • 使用数据寻呼机
  • 我不知道如何将其应用到我的案例中。

    感谢任何帮助。

    非常感谢。

    最佳答案

    您在服务器端所需要做的就是更改 DataSource 或 DataSourceID 属性并在 ListView 上调用 DataBind。

    在使用 <%# Eval("") %> 语法时,您必须确保要绑定(bind)的对象具有 Eval 中命名的属性。因此,当您的属性前面带有类型名和下划线时,您可能会在切换数据源时遇到问题。话虽如此。您有 2 个选项可以更改数据源。在按钮的单击事件或您使用的任何切换机制中,您可以编写类似的内容。

    不在标记中使用数据源:

    List<Bonus> bonusList = GetBonuses();
    MyListView.DataSource = bonusList;
    MyListView.DataBind();

    在标记中使用数据源:

    //where bonus list would be the id of the datasource in the markup
    MyListView.DataSourceID= "BonusList";

    MyListView.DataBind();

    关于asp.net - 如何动态分配数据源给listview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/816581/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com