ASP.. NET中继器用户控件不显示数据

本文关键字:显示 数据 控件 用户 NET 中继器 ASP | 更新日期: 2023-09-27 18:08:53

我有一个包含中继器的用户控件。我填充了中继器的数据源(我已经检查了它包含数据),但是中继器不显示任何数据。控件已正确添加到页面。

 //aspx for user control
 <asp:Repeater runat="server">
        <HeaderTemplate><table>
        <%# Eval("Name") %>
 </HeaderTemplate>
 //C# for user control
 public object DataSource { get; set; }
 protected void Page_Load(object sender, EventArgs e)
    {
        this.DataSource = DataSet;
        this.DataBind();
    }
//C# (code behind of aspx page where I want to use the repater user control)
repeater.DataSource = DataSet.ToArray();
repeater.DataBind();

知道为什么这不起作用吗?

ASP.. NET中继器用户控件不显示数据

试试:

    <asp:Repeater ID="repeater1" runat="server"> 
            <HeaderTemplate>
                <table class="datatable fullwidthpercent"> 
                   <tr>
                       <td>Name</td>
                   </tr>
            </HeaderTemplate>
            <ItemTemplate>
                   <tr>
                       <td><%# Eval("Name") %></td> 
                   </tr>
               </table>
            </ItemTemplate>
            <FooterTemplate>
               </table>
            </FooterTemplate>
   </asp:Repeater> 

,也写repeater1.DataBind();

repeat . databind ();

ASP。. NET控件不会自动绑定。

HeaderTemplates,我相信,不绑定数据,他们只显示静态内容。您必须将要绑定的数据放在ItemTemplateAlternatingItemTemplate中。

我假设您省略了DataBind语句,它也需要被调用。

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        getdata();
    }
}
public void getdata()
{
    ds = objfun12.display();
    repeat12.DataSource = ds;
     repeat12.DataBind();
}