对数据源或转发器中的项目进行计数

Count items in datasource or inside repeater

提问人:Gabriele Cozzolino 提问时间:12/22/2017 最后编辑:Gabriele Cozzolino 更新时间:1/3/2018 访问量:347

问:

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

<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(第 2 行)的地点卡 div,然后可以相应地加载一堆 div 以从数据库读取的数据。 我想要的是,当没有数据要加载时,唯一的项目也是如此,显示它,反之亦然,当有 1 个或更多其他 div 时,隐藏它。divSegnapostodivSegnaposto

我想我应该计算转发器中的项目数或数据源中的行数(我使用的是 EF),所以我尝试了不同的方法,但例如始终为 0。repeater_databound_eventrepeater.items.count

我怎样才能实现目标?

vb.net Entity-Framework SQLDataSource ASPRigherEntity Repeater

评论

0赞 12/22/2017
divSegnaposto不在中继器内部。
0赞 Gabriele Cozzolino 12/22/2017
是的,算了吧,这只是为了解释最终目标。但是我怎样才能计算中继器内的 div 呢?
0赞 12/22/2017
显示您的活动repeater_databound
0赞 Gabriele Cozzolino 12/22/2017
我尝试使用rptDaFareOggi.items.count,但就像我说的,总是0
0赞 12/22/2017
您是否在活动中转换了中继器?

答:

0赞 Gabriele Cozzolino 1/3/2018 #1

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