计算数据源或内部转发器中的项目

问题描述 投票:1回答:1

我发现了一些关于这个论点的其他问题,但我无法得到任何工作。我有一个带数据源的转发器,这是我的转发器代码:

<div class="container dafareoggi" id="divDaFareOggi">
    <div runat="server" id="divSegnaposto"></div>
    <asp:Repeater runat="server" ID="rptDaFareOggi" DataSourceID="SqlAttivitaDaFareOggi">
        <ItemTemplate>
            <div id="<%# Eval("id") %>">
                <div class="div-titolo" title="<%# Eval("Titolo") %>"><%# Eval("Titolo") %></div>
                <div class="div-testo" title="<%# Eval("Note") %>"><%# Eval("Note") %></div>
                <div>
                    <table style="width: 100%;margin-top:0.5em;padding-right:0.2em;">
                        <tr>
                            <td style="width: 50%; text-align: left;">
                                <asp:ImageButton runat="server" ImageUrl="~/images/gabri.png" Width="2.3em" Height="2.3em" ToolTip='<%#Eval("tecnico")%>' Enabled="false" Visible='<%# IIf(Eval("idutente") = 8, True, False) %>'/>
                                <asp:ImageButton runat="server" ImageUrl="~/images/giuse.png" Width="2.3em" Height="2.3em" ToolTip='<%#Eval("tecnico")%>' Enabled="false" Visible='<%# IIf(Eval("idutente") = 2, True, False) %>'/>
                                <asp:ImageButton runat="server" ImageUrl="~/images/robi.png" Width="2.3em" Height="2.3em" ToolTip='<%#Eval("tecnico")%>' Enabled="false" Visible='<%# IIf(Eval("idutente") = 5, True, False) %>'/>
                            </td>
                            <td style="width: 50%; text-align: right; ">
                                <asp:LinkButton CommandName="delAttivita" CommandArgument='<%#Eval("ID")%>' runat="server" ID="lnkDelAtt" CausesValidation="False" OnClientClick="return confirm('Sei sicuro di voler eliminare questa attivita?');"><i class="fa fa-trash fa-lg" title="Elimina attività"></i></asp:LinkButton>
                                <asp:LinkButton CommandName="editAttivita" CommandArgument='<%#Eval("ID")%>' runat="server" ID="lnkEditAtt"><i class="fa fa-pencil-square fa-lg" title="Modifica attività"></i></asp:LinkButton>
                            </td>
                        </tr>
                    </table>
                </div>
            </div>
        </ItemTemplate>
    </asp:Repeater>
</div>

在转发器中有一个带有id divSegnaposto(第二行)的位卡div,然后可以相应地将一堆div加载到从db读取的数据。我想要的是,当没有数据要加载时,所以divSegnaposto是唯一的项目,以显示它,反之亦然,当有1个以上的其他div时,隐藏它。

我想我应该计算转发器内部的项目数量或数据内部的行数(我使用的是EF),所以我在repeater_databound_event尝试了不同的方法,但是例如repeater.items.count总是0。

我怎样才能实现目标?

vb.net entity-framework repeater sqldatasource asprepeater
1个回答
0
投票

我最终使用了一个linq查询,该查询与itembound事件中的sqldatasource相同,然后我检查它是否为空并显示\相应地隐藏了placecard。我不太喜欢它因为让我发疯:我已经拥有了转发器或sql数据源中所需的所有信息,所以我想我认为有一种更容易,更少代码消耗的方法。但是我找到的所有答案都比在后面的代码中重新执行查询更复杂......

© www.soinside.com 2019 - 2024. All rights reserved.