我在转发器内有一个转发器。其中父中继器绑定到一个Datatble,它有一个Datatable其中的列。
我想绑定子中继器到父中继器的datarow中的datatable列
这可能吗?我想我可以这样直接在aspx文件像:
DataSource =“<%#DataBinder.Eval(Container.DataItem,”Products“)%>”但它似乎不工作。
解决方法
在父中继器中,将一个方法附加到OnItemDataBound事件,并在该方法中,找到嵌套的重复器和数据绑定它。
示例(.aspx):
<asp:Repeater ID="ParentRepeater" runat="server" OnItemDataBound="ItemBound"> <ItemTemplate> <!-- Repeated data --> <asp:Repeater ID="ChildRepeater" runat="server"> <ItemTemplate> <!-- Nested repeated data --> </ItemTemplate> </asp:Repeater> </ItemTemplate> </asp:Repeater>
示例(.cs):
protected void Page_Load(object sender,EventArgs e) { if (!IsPostBack) { ParentRepeater.DataSource = ...; ParentRepeater.DataBind(); } } protected void ItemBound(object sender,RepeaterItemEventArgs args) { if (args.Item.ItemType == ListItemType.Item || args.Item.ItemType == ListItemType.AlternatingItem) { Repeater childRepeater = (Repeater)args.Item.FindControl("ChildRepeater"); childRepeater.DataSource = ...; childRepeater.DataBind(); } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。