我正在尝试建立一个ASP.net使用者控件,它使用Repeater来逐一查看ObjectDataSource中的许多项目,我需要将这些项目传入使用者控件。不过,我不确定如何传入对象数据来源。有人知道如何做吗?
2q5ifsrm1#
您可以在使用者控件中建立属性,并将它传递给重复控件。
public class CustomUserControl { private Repeater repeater; public ObjectDataSource DataSource { get { return this.repeater.DataSource; } set { this.repeater.DataSource = value; } } }
lh80um4z2#
下面是执行此操作的大致步骤(未测试)。
<uc1:YourUserControl DataSourceId="YourObjectDataSourceID"></uc1:YourUserControl>
〈asp:repeater数据源ID =“〈%#数据源ID %〉”〉</asp:repeater>
9rbhqvlz3#
如果使控件继承自CompositeDataBoundControl
[ToolboxData("<{0}:TopNav runat=server></{0}:TopNav>")] public class TopNav : CompositeDataBoundControl
您可以将DataSourceID分配给它。
<uc1:TopNav ID="YUITopNav1" runat="server" DataSourceID="ObjectDataSource1" />
然后在控件中实现
protected override int CreateChildControls(IEnumerable dataSource, bool dataBinding) { this.Repeater1.DataSource = dataSource; this.Repeater1.DataBind(); }
其中dataSource是来自ObjectDataSource的数据
3条答案
按热度按时间2q5ifsrm1#
您可以在使用者控件中建立属性,并将它传递给重复控件。
lh80um4z2#
下面是执行此操作的大致步骤(未测试)。
<uc1:YourUserControl DataSourceId="YourObjectDataSourceID"></uc1:YourUserControl>
〈asp:repeater数据源ID =“〈%#数据源ID %〉”〉</asp:repeater>
9rbhqvlz3#
如果使控件继承自CompositeDataBoundControl
您可以将DataSourceID分配给它。
然后在控件中实现
其中dataSource是来自ObjectDataSource的数据