0

テーブルにデータを入力するために使用しているリピーター コントロールがあります。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 のプレースホルダーが表示されますが、テーブルは表示されません (空のテーブルであっても)。

誰かが私が見逃しているものを見ることができますか?

4

1 に答える 1