我的转发器无法在浏览器中呈现

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

我创建了一个转发器,无法渲染它。当我们检查对象时,它不会出现。我把它上面的代码,称为分析注册数据,并在转发器后重复并看不到,但转发器没有。可能有什么不对?下面是分析注册数据的代码:

<div class="boxAprovacao">
        <h2>Analisar dados cadastrais</h2>
        <asp:HiddenField ID="hdfCdPendencia" runat="server" />
        <asp:RadioButtonList ID="rblIcAprovado" runat="server" RepeatDirection="Horizontal">
            <asp:ListItem Text="Aprovar" Value="1"></asp:ListItem>
            <asp:ListItem Text="Reprovar" Value="0"></asp:ListItem>     
        </asp:RadioButtonList>
        <asp:TextBox ID="txtParecerDadosCadastrais" TextMode="MultiLine" runat="server" CssClass="parecerAnalista" />
        <asp:HiddenField ID="hdfCdUsuario" runat="server" />

        <asp:Repeater ID="rptHistoricoAnalises" runat="server" OnItemDataBound="rptHistoricoAnalises_ItemDataBound">
            <HeaderTemplate>
            <h3>Histórico de análises</h3>
            <dl>    
            </HeaderTemplate>

            <ItemTemplate>
            <dt>
                Por:
                <asp:Label Text="ANA LUCIA ALVES MARTINS" ID="lblHistAnaNmAnalista" runat="server" /><br />
                Em: <asp:Label Text="03/12/2014" ID="lblHistAnaData" runat="server" /> - <asp:Label Text="10:19" ID="lblHistAnaHorario" runat="server" />
            </dt>
            <dd>
                <asp:Label Text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque bibendum diam augue, ut varius lectus luctus a. Sed finibus fringilla nibh. Quisque orci erat, iaculis quis neque vitae, maximus vehicula tortor. Praesent luctus venenatis venenatis. Nullam non lacus orci. Vivamus convallis hendrerit urna, vel facilisis sapien semper non." ID="lblHistAnaParacerAnalista" runat="server" />
            </dd>
            </ItemTemplate>

            <FooterTemplate>
            </dl>
            </FooterTemplate>
        </asp:Repeater>
</div>

如果我运行一个方法和ItemTemplate我这样做:< td> < asp: Label ID = " lblValorPedido " runat = "server" Text = '< % # Eval ( " VlCompra ")% > ' /> < / td>例如,因为转发器知道这是我的DataSource?

EDIT1

我不能发布代码,因为我不在这家公司工作。我在Fev / 2017离开了那家公司。我想改进我的帖子,但是不可能。我仍然禁止在这个网站,我不知道该怎么做。

c# asp.net repeater
1个回答
1
投票

您需要设置DataSourceRepeater,然后在其上调用DataBind,或者通过DataSourceID属性将转发器挂钩到某个数据源控件。由于您还没有这样做,因此无需重复,因此不会生成任何HTML。


代码隐藏,显示DataSource / DataBind方法。请注意我正在检查以确保它不是回发,因为ViewState将在回发之间维护数据,而我不需要重新获取数据。

protected void Page_Load(object sender, EventArgs e)
{
    if(!IsPostBack)
    {
         rptHistoricoAnalises.DataSource = MyDataLayer.GetData();
         rptHistoricoAnalises.DataBind();
    }
}

正如我所提到的,另一种方法是使用数据源控件。

<asp:SqlDataSource runat="server" id="MyDataSource" connectionstring="your connection string here" selectcommand="your select command here" />
<asp:Repeater ID="rptHistoricoAnalises" DataSourceID="MyDataSource" runat="server" OnItemDataBound="rptHistoricoAnalises_ItemDataBound">
© www.soinside.com 2019 - 2024. All rights reserved.