0

I have a webuser control having repeater control inside it like below.

 <asp:Repeater ID="repeaterInvoicesPaid" runat="server">
        </asp:Repeater>

I just dragged it to my data.aspx page.Now i have a method inside data.cs C# file which is returning the data from table .i want to ask ,how to bind the repeater(which is inside the user control)?

it will be binded inside data.cs file or web user control's own C# file.?

And please tell me how to access the repeater id from user control inside data.cs file?

Thanks in advance.

4

3 回答 3

1

至于问题1:您可以

  • 暴露中继器(见问题 3)或
  • 暴露数据源

我个人赞成最后一种选择

对于数据绑定选项,您可以选择公开内置的数据绑定方法,也可以在设置源时进行数据绑定。

可以像这样公开数据源

public static object RepeaterDataSource {
    get { return repeater.DataSource; }
    set { repeater.DataSource = value; }
}

或创建一种方法来设置它,以允许在设置时进行操作,例如数据绑定。


问题2:实际绑定总是发生在转发器所在的地方。如果您需要一个 OnItemDataBound 处理程序,那么该处理程序将位于用户控件的代码隐藏中,无论您从何处绑定它。但是,您也可以公开它,但我认为没有理由这样做。


问题 3:如果你想要 id,那么我假设客户 id。你可以用这样的东西得到它

public static string RepeaterClientID {
    get { return theRepeater.ClientID; }
}

虽然我不确定这就是你的真正意思。如果你想要一个参考,那么

public static Repeater TheRepeater {
    get { return theRepeater; }
    set { theRepeater = value; }
}

最后,接受更多问题的答案,或完全删除它们。你的录取率很低。

于 2012-10-30T12:05:38.943 回答
1

Create object of user control

UserControl usr = Page.FindControl("usercontrolID"); Repeator rept = usr.FindControl("repeatorControlID");

rept.DataScourse= Datatbale; rept.DataBind();

于 2012-10-30T12:13:12.360 回答
0

您始终可以在返回中继器的用户控件中创建一个公共属性。

于 2012-10-30T11:45:49.523 回答