1

私は本当に混乱しています.1日無駄にしましたが、まだ修正できません.(Repeater.ascx)Webユーザーコントロール(内部にRepeaterがある)を作成し、このようにaspxページ(Info.aspx)にドラッグします.

   <uc1:Repeater runat="server" ID="Repeater" />

これはユーザー制御コードです。

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Repeater.ascx.cs" Inherits="DBG.Website.Billing.Repeater" %>
 <asp:Repeater ID="repeaterInvoicesPaid"    OnItemCommand="ClientNameClicked" runat="server">
               <HeaderTemplate>
            <table id="PaidInvoicesTable" cellspacing="0" cellpadding="0" style="width: 100%; font-size: 11px; border-right-width: 0; border-bottom-width: 0;"
            class="dxgvControl grid dxgvTable">
                    <thead>
                        <tr>
                            <td style="width: 150px;" class="dxgvHeader">Invoice #
                            </td>
                            <td style="width: 150px;" class="dxgvHeader">Client Name
                            </td>
                            <td style="width: 150px;" class="dxgvHeader">Invoice Date
                            </td>
                            <td style="width: 150px;" class="dxgvHeader">Due Date
                            </td>
                            <td style="width: 150px;" class="dxgvHeader">Total
                            </td>
                            <td style="width: 150px;" class="dxgvHeader">Payment Method
                            </td>
                            <td style="width: 150px;" class="dxgvHeader">Status

                        </tr>
                    </thead>
              <tbody>
            </HeaderTemplate>

            <ItemTemplate>
                <tr class="dxgvDataRow">
                    <td class="dxgv">
                    <asp:Label ID="lblInvoiceID" Text='<%#Eval("InvoiceID")%>' runat="server" /> 
                    </td>
                    <td class="dxgv">
                   <asp:LinkButton ID="btnClientName"  CommandName="NameClicked"  Text='<%#Eval("ClientName")%>' CommandArgument='<%#Eval("InvoiceReapterCustomerID") %>' runat="server"/>

                    </td>

                    <td class="dxgv">
                        <asp:Label ID="lblAddedDate" Text='<%#Eval("AddedDateAndTime")%>' runat="server" />
                    </td>
                    <td class="dxgv">
                   <asp:Label ID="lblCloseDate" Text='<%#Eval("CloseDateOnly") %>' runat="server" />

                    </td>
                    <td class="dxgv">
                    <asp:Label ID="lblRecurringCharge" Text='<%#Eval("RecurringCharge") %>' runat="server" />

                    </td>
                    <td class="dxgv">
                      <asp:Label ID="lblPaymentMethodID"  Text='<%#Eval("PaymentMethodIDInvoices")%>' runat="server" />

                    </td>
          <td class="dxgv">

           <asp:Label ID="lblStatus"   ForeColor="Green"  Text=' <%#Eval("StatusType") %>' runat="server" />

          </td>
                        <td class="dxgv">

           <asp:Label ID="lblCustomerid"   Visible="false"  Text=' <%#Eval("InvoiceReapterCustomerID") %>' runat="server" />

          </td>
                </tr>
            </ItemTemplate>

   <FooterTemplate>

            </tbody> 


       </table>
        </FooterTemplate>
        </asp:Repeater>

今私の問題は、info.csファイル内のWebユーザーコントロールのリピーターをバインドしたいのですが、info.csでユーザーコントロールとリピーターIDを取得してバインドする方法がわかりません。

注: info.cs のメソッドから返された datasource(List) でリピーターをバインドする必要があります。

助けてください 。ありがとうございました。

4

2 に答える 2

1

コントロールでパブリックメソッドを作成し、ページから呼び出すことができます。

ASCXで

public void BindRepeater()
{
    //.....
    repeaterInvoicesPaid.DataSource = datatableOrDataSet;
    repeaterInvoicesPaid.DataBind();
}

ASPXでは

uc1.BindRepeater();
于 2012-10-31T05:56:43.453 に答える
0

通常、標準の ASP.NET では、ID と runat="server" 属性を指定すると、aspx ページのコードからコントロールにアクセスできます。コントロールが作成される初期化後にアクセスすることが重要です。最適な選択は OnLoad イベントになります。

覚えておく必要があるのは、datasource/itemssource を設定するときは、実際のバインドを行うために、後で .Bind() または .DataBind() メソッドを呼び出す必要があるということです。

于 2012-10-31T05:58:31.563 に答える