如何绑定放置在Web用户控件中的转发器

时间:2012-10-30 11:43:50

标签: c# asp.net webusercontrol

我有一个webuser控件,里面有转发器控件,如下所示。

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

我只是将它拖到我的data.aspx页面。现在我在data.cs C#文件中有一个方法从表返回数据。我想问一下,如何绑定转发器(在用户控件内部) )?

它将被绑定到data.cs文件或Web用户控件自己的C#文件中。?

请告诉我如何从data.cs文件中的用户控件访问转发器ID?

提前致谢。

3 个答案:

答案 0 :(得分:1)

至于问题1:你可以

  • 揭露转发器(见问题3)或
  • 公开数据源

我个人赞成最后一个选项

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

公开数据源可以像这样完成

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

或制作一个设置方法,允许在设置时进行操作,如数据绑定。


问题2:实际绑定总是发生在转发器的位置。如果你需要一个OnItemDataBound处理程序,那么那个处理程序将位于usercontrol的代码隐藏中,无论你从哪里绑定它。但是你也可以揭露它,但我认为没有理由这样做。


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

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

虽然我不确定你的意思是什么。如果你想要一个引用,那么

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

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

答案 1 :(得分:1)

创建用户控制对象

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

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

答案 2 :(得分:0)

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