1

私は 2 つのネストされたリピーターを持っています。私の問題は結果の表示に関するものです。次のように表示させたいです。

キャプション1

  Images1

キャプション 2 (新しい行にある必要がありますが、そうではありません)

  Images2

キャプション 3 (改行する必要がありますが、そうではありません)

  Images3

しかし、結果は次のとおりです。

http://s22.postimg.org/v53xrz40h/Capture.jpg

どうすればこれを解決できますか?

ありがとう。

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>

コード

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();
    }
4

1 に答える 1

0

この場合、リピーターの代わりに ListView を使用する必要があると思います。できることは、次のようにリストビュー「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>

コードは次のようになります。

parentListview.DataSource = Listtournoiterminer;
parentListview.DataBind();

その後 :

protected void ItemBound(object sender, ListViewItemEventArgs args)
{

        Repeater childRepeater = (Repeater)args.Item.FindControl("childRepeater");

        ...

        childRepeater.DataSource = Top3;
        childRepeater.DataBind();

}

これがお役に立てば幸いです。

于 2013-05-08T14:46:44.130 に答える