我有一个用来填充表格的中继器控件。当我使用在 aspx 代码中定义的 ObjectDataSource 填充转发器并将页眉和页脚移到模板外时,该控件起作用;但是,当我尝试将转发器数据源绑定到后面代码中的 DataTable 时,它不起作用。
这是我的aspx代码:
<asp:Panel ID="panelViewApps" runat="server">
<asp:Repeater ID="repeaterViewApplications" runat="server">
<HeaderTemplate>
<table class="items">
<tr>
<td><div align="center"><font color="#666666" size="2" face="Arial, Helvetica, sans-serif">Date</font></div></td>
<td><div align="center"><font color="#666666" size="2" face="Arial, Helvetica, sans-serif">Number</font></div></td>
<td><div align="center"><font color="#666666" size="2" face="Arial, Helvetica, sans-serif">Name</font></div></td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><div align="center"><font color="#666666" size="2" face="Arial, Helvetica, sans-serif">
<%# DataBinder.Eval(Container.DataItem, "Application_Date") %></font></div></td>
<td> something else </td>
<td> something else </td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</asp:Panel>
我背后的代码:
panelViewApps.Visible = true;
tblApplicationsTableAdapter app_adapter = new tblApplicationsTableAdapter();
DataTable apps = app_adapter.GetApps("some subset");
repeaterViewApplications.DataSource = apps;
repeaterViewApplications.DataBind();
我还尝试使用最后一个命令为 Page.Databind()
适配器方法返回正确的东西(事实证明,当我完全通过 aspx 填充时,这有效。在这种情况下,控件根本不显示。我已经更改了变量名 - 希望我没有引入无关紧要尝试关联问题的过程中出现错误。请注意,后面的代码是在按钮单击内部,而不是 load_page() 方法。(正确调用了按钮单击方法。)甚至表的标题都没有显示。当我在页面上“查看源代码”时,我看到 panelViewApps 的占位符 - 但没有表格(甚至是空表格)。
谁能看到我错过了什么?