我真的很困惑。它花了整整一天但仍然无法修复。我制作了一个(Repeater.ascx)网络用户控件(里面有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的方法将转发器与数据源(List)返回绑定。
请帮助。 谢谢。
答案 0 :(得分:1)
您可以在控件中创建一个公共方法,然后从页面调用它。
在ASCX中
public void BindRepeater()
{
//.....
repeaterInvoicesPaid.DataSource = datatableOrDataSet;
repeaterInvoicesPaid.DataBind();
}
在ASPX中
uc1.BindRepeater();
答案 1 :(得分:0)
通常对于vanilla ASP.NET,如果指定ID和runat =“server”属性,则可以从aspx页面的代码访问该控件。访问创建控件的帖子初始化非常重要 - 您最好的选择是在OnLoad事件中。
您必须记住的是,当您设置datasource / itemssource时,您必须先调用.Bind()或.DataBind()方法来进行实际绑定。