[英]Item order in nested Repeaters
I have 2 nested Repeaters, my problem is about the displaying the result. 我有2个嵌套的中继器,我的问题是关于显示结果。 I want it to be displayed like this: 我希望它像这样显示:
Caption1 字幕1
Images1
Caption2 (should be at new line but not) Caption2(应该在新行,但不能在新行)
Images2
Caption3 (should be at new line but not) Caption3(应位于新行,但不能位于新行)
Images3
But the result is this: 但是结果是这样的:
http://s22.postimg.org/v53xrz40h/Capture.jpg http://s22.postimg.org/v53xrz40h/Capture.jpg
So how can i solve this? 那么我该如何解决呢?
Thanks. 谢谢。
HTML: HTML:
<asp:Repeater ID="rptReferansBaslik" runat="server" OnItemDataBound="rptReferansBaslik_ItemDataBound">
<ItemTemplate>
<p>
<asp:Label ID="lblCaption" runat="server" Text='<%#Eval("Ref_Baslik") %>'></asp:Label>
</p>
<asp:Repeater ID="rptCalismalar" runat="server">
<ItemTemplate>
<ul id="mb_imagelist" class="mb_imagelist">
<li>
<img src='images/small/<%#Eval("CI_ThumNailURL") %>' alt="image1" data-bgimg='images/big/<%#Eval("CI_ImageURL") %>' /></li>
</ul>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
Code 码
protected void Page_Load(object sender, EventArgs e)
{
//List<Referanslar> list = Referanslar.GetReferanslarList("");
rptReferanslar.DataSource = Referanslar.GetReferanslarList("");
rptReferanslar.DataBind();
rptReferansBaslik.DataSource = Referanslar.GetReferanslarList("");
rptReferansBaslik.DataBind();
}
protected void rptReferansBaslik_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
Repeater rp = (Repeater)e.Item.FindControl("rptCalismalar");
int id = int.Parse(DataBinder.Eval(e.Item.DataItem, "Ref_ID").ToString());
rp.DataSource = CalismalarImages.GetCalismalarImagesList("SELECT * FROM CalismalarImages WHERE CI_CalismaID=" + id);
rp.DataBind();
}
in this case, I think you should use ListView instead of repeater. 在这种情况下,我认为您应该使用ListView而不是Repeater。 What you can do is to create a listview "parentListview" and then a listview "childRepeater" like this : 您可以做的是创建一个列表视图“ parentListview”,然后创建一个列表视图“ childRepeater”,如下所示:
//Link mannually OnItemDataBound to ItemBound --
<asp:ListView ID="parentListview" runat="server" OnItemDataBound="ItemBound">
<ItemTemplate>
...
<asp:Repeater ID="childRepeater" runat="server">
<ItemTemplate>
...
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:ListView>
The code should look like this : 该代码应如下所示:
parentListview.DataSource = Listtournoiterminer;
parentListview.DataBind();
And then : 接着 :
protected void ItemBound(object sender, ListViewItemEventArgs args)
{
Repeater childRepeater = (Repeater)args.Item.FindControl("childRepeater");
...
childRepeater.DataSource = Top3;
childRepeater.DataBind();
}
I hope this helped you ! 希望这对您有所帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.