【问题标题】:Datalist inside Repeater ... Only getting header from repeater中继器内的数据列表...仅从中继器获取标头
【发布时间】:2018-04-02 15:19:12
【问题描述】:

我不熟悉使用中继器和数据列表。

我在论坛中查看了将数据列表放置在中继器中的正确方法。下面是我创建的,但它只在我运行时显示转发器的标题

<div id="divMarketSnapshot" style="vertical-align: central; width: 100%; height: 450px; overflow: auto" runat="server">
<asp:Repeater ID="rptrRanks" runat="server" ViewStateMode="Disabled">
<HeaderTemplate>
    <table border="0" style="border-collapse: collapse; table-layout: fixed; width:100%;vertical-align:central">
        <tr style="height: 14pt; width:100%">
            <td class="xl6220798" colspan="33" style="text-align: left; font-weight: bold;width:99.99%"></td>
        </tr>
        <tr style="height: 14pt; width:100%">
            <td class="xl1520798" style="width:3.03%"></td>
            <td class="xl1520798" style="width:3.03%"></td>
            <td class="xl1520798" style="width:3.03%"></td>
            <td class="xl1520798" colspan="27" style="text-align: left;font-size:14pt; font-weight: bold;width:81.1%"><%# DataBinder.Eval(Container.DataItem, "EventRow_Group") %></td>
            <td class="xl1520798" style="width:3.03%"></td>
            <td class="xl1520798" style="width:3.03%"></td>
            <td class="xl1520798" style="width:3.03%"></td>
        </tr>
        <tr style="height: 14pt; width:100%">
            <td class="xl6220798" colspan="33" style="text-align: left; font-weight: bold;width:99.99%"></td>
        </tr>
    </HeaderTemplate>
    <ItemTemplate>
        <asp:DataList ID="dlRanks" runat="server" RepeatColumns="2" RepeatDirection="Horizontal">
            <HeaderTemplate>
                <tr style="height: 14pt; width:100%" runat="server">
                    <td runat="server" colspan="16" class="xl6620798" style="width:48.48%">
                        <a href="<%# DataBinder.Eval(Container.DataItem, "EventRow_ChartLink") %>"  " title="<%# DataBinder.Eval(Container.DataItem, "EventRow_EventDirectionDesc") %>" target="_blank"><%# DataBinder.Eval(Container.DataItem, "EventRow_Name") %></a>
                    </td>
                    <td class="xl1520798" style="width:3.03%"></td>
                </tr>
                <tr runat="server" style="width: 100%">
                    <td class="xl6720798" colspan="2" style="width: 6.06%; text-align: center">Date</td>
                    <td class="xl6720798" colspan="2" style="width: 6.06%; text-align: center">Market<br />Forecast</td>
                    <td class="xl6820798" colspan="2" style="width: 6.06%; text-align: center">RCG<br />Forecast</td>
                    <td class="xl6920798" colspan="2" style="width: 6.06%; text-align: center">Market<br />Actual</td>
                    <td class="xl7020798" colspan="2" style="width: 6.06%; text-align: center">RCG<br />Accuracy</td>
                    <td class="xl6920798" colspan="2" style="width: 6.06%; text-align: center">Equity Market<br />End Of Day</td>
                    <td class="xl7020798" colspan="2" style="width: 6.06%; text-align: center"><%# DataBinder.Eval(Container.DataItem, "EventRow_IndexHeader") %> Index<br />End Of Day</td>
                    <td class="xl7020798" colspan="2" style="width: 6.06%; text-align: center"><%# DataBinder.Eval(Container.DataItem, "EventRow_CurrencyHeader") %><br />End Of Day</td>
                    <td class="xl1520798" style="width: 3.03%"></td>
                </tr>
            </HeaderTemplate>
            <ItemTemplate>
                <tr style="width:100%">
                    <td class="xl7120798" colspan="2" style="width:6.06%; text-align: center"><%# DataBinder.Eval(Container.DataItem, "EventRow_DateTime") %></td>
                    <td class="xl7120798" colspan="2" style="width:6.06%; text-align: center"><%# DataBinder.Eval(Container.DataItem, "EventRow_Forecast") %></td>
                    <td class="<%# DataBinder.Eval(Container.DataItem, "EventRow_ForecastDirection_Change") %>" colspan="2" style="width:6.06%; text-align: center"><%# DataBinder.Eval(Container.DataItem, "EventRow_ForecastDirection") %></td>
                    <td class="xl7120798" colspan="2" style="width:6.06%; text-align: center"><%# DataBinder.Eval(Container.DataItem, "EventRow_Actuals") %></td>
                    <td class="<%# DataBinder.Eval(Container.DataItem, "EventRow_ActualMarketResult_Font") %>" colspan="2" style="width:6.06%; text-align: center"><%# DataBinder.Eval(Container.DataItem, "EventRow_ActualMarketResult") %></td>
                    <td class="<%# DataBinder.Eval(Container.DataItem, "EventRow_Equity_EOD_Change") %>" colspan="2" style="width:6.06%; text-align: center"><%# DataBinder.Eval(Container.DataItem, "EventRow_Equity_EOD_Price") %></td>
                    <td class="<%# DataBinder.Eval(Container.DataItem, "EventRow_Index_EOD_Change") %>" colspan="2" style="width:6.06%; text-align: center"><%# DataBinder.Eval(Container.DataItem, "EventRow_Index_EOD_Price") %></td>
                    <td class="<%# DataBinder.Eval(Container.DataItem, "EventRow_Currency_EOD_Change") %>" colspan="2" style="width:6.06%; text-align: center"><%# DataBinder.Eval(Container.DataItem, "EventRow_Currency_EOD_Price") %></td>
                    <td class="xl1520798" style="width:3.03%"></td>
                </tr>                                    
            </ItemTemplate>
            <FooterTemplate>
                <tr style="width:100%">
                    <td style="width:3.03%"></td>
                    <td style="width:3.03%"></td>
                    <td class="xl1520798_15" colspan="4" style="width:12.12%; text-align: left">Next Forecast:  <%# DataBinder.Eval(Container.DataItem, "EventRow_NextForecast") %></td>
                    <td style="width:3.03%"></td>
                    <td class="xl1520798_15" colspan="3" style="width:12.3%;text-align:center">Ultra Accuracy:  <span style="<%# DataBinder.Eval(Container.DataItem, "EventRow_UltraAccuracy_Style") %>"><%# DataBinder.Eval(Container.DataItem, "EventRow_UltraAccuracy") %></td>
                    <td colspan="7" style="width:21.21%"></td>
                </tr>
                <tr style = "width:100%">
                    <td class="xl6820798" colspan="33" style="width:99.99%"></td>
                </tr>
            </FooterTemplate>
        </asp:DataList>
    </table>
</ItemTemplate>

ItemDatabound 上的代码隐藏:

Private Sub rptrRanks_ItemDataBound(sender As Object, e As RepeaterItemEventArgs) Handles rptrRanks.ItemDataBound 
    Dim dt As DataTable 
    Dim dlRanks As DataList = DirectCast(e.Item.FindControl("dlRanks"), DataList) 
    dt = TryCast(rptrRanks.DataSource, DataTable) 
    dlRanks.DataSource = dt 
    dlRanks.DataBind() 
End Sub

对于 Datalist,我有 2 列数据。 我正在寻找的结构如下:

Group
Event                                            Event
data col  data col   data col                    data col  data col   data col
data col  data col   data col                    data col  data col   data col
data col  data col   data col                    data col  data col   data col
data col  data col   data col                    data col  data col   data col

Footer information                               Footer information

请让我知道我需要更改哪些内容才能正常工作。

【问题讨论】:

  • 看起来可能存在数据未绑定到中继器内的 Datalist 的问题。你能提供你如何绑定数据的代码吗?
  • 对不起.. 这里是代码... Private Sub rptrRanks_ItemDataBound(sender As Object, e As RepeaterItemEventArgs) Handles rptrRanks.ItemDataBound Dim dt As DataTable Dim dlRanks As DataList = DirectCast(e.Item.FindControl ("dlRanks"), DataList) dt = TryCast(rptrRanks.DataSource, DataTable) dlRanks.DataSource = dt dlRanks.DataBind() End Sub
  • 有人知道我的问题是什么吗?
  • 我刚刚运行了一个测试,当我将数据表添加为数据列表数据源 (dlRanks.DataSource = dt) 时,我确实看到了一个空引用。

标签: asp.net repeater nested-datalist


【解决方案1】:

所有,我找到了一个做嵌套中继器的链接。我正在使用我的代码来解决这个问题。这是链接https://www.mikesdotnetting.com/article/57/displaying-one-to-many-relationships-with-nested-repeaters

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-10
    • 2014-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多