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: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,我相信,不绑定数据,他们只显示静态内容。您必须将要绑定的数据放在ItemTemplate
或AlternatingItemTemplate
中。
我假设您省略了DataBind语句,它也需要被调用。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
getdata();
}
}
public void getdata()
{
ds = objfun12.display();
repeat12.DataSource = ds;
repeat12.DataBind();
}