有没有办法将第三项模板添加到转发器

时间:2017-03-10 10:19:39

标签: asp.net

我在Visual Studio中设置了一个转发器,尝试从数据库中获取最新的3个博客标题,并显示相关图像以及标题,简介和链接。

但是,每个博客的父div需要具有不同的ID。

目前我有以下代码,但它不起作用,因为我发现你不能有一个itemtemplate后跟一个交替的项目模板,后跟另一个项目模板。

我有解决方法吗?

    <asp:Repeater runat="server" ID="repeaterNews1" DataSourceID="SQLDataNews1">
        <ItemTemplate>
            <div id="blog1">
                <div class="col-xs-12">
                    <asp:Image runat="server" ID="Image1" ImageUrl='<%# Eval("NewsStoryImage") %>'/>
                    <div class="blogContent">
                        <div class="container">
                            <h2>Our Blog</h2>
                            <p><asp:Label runat="server" ID="Label1" Text='<%# Eval("PageTitle") %>'></asp:Label></p>
                            <p><asp:Label runat="server" ID="Label2" Text='<%# Eval("Content1") %>'></asp:Label></p>
                            <a href='<%# Eval("PageUrl") %>' alt="">Read More</a>
                        </div>
                    </div>
                </div>
            </div>
        </ItemTemplate>
        <AlternatingItemTemplate>
            <div id="blog2">
                <div class="col-xs-12">
                    <asp:Image runat="server" ID="Image2" ImageUrl='<%# Eval("NewsStoryImage") %>'/>
                    <div class="blogContent">
                        <div class="container">
                            <h2>Our Blog</h2>
                            <p><asp:Label runat="server" ID="Label1" Text='<%# Eval("PageTitle") %>'></asp:Label></p>
                            <p><asp:Label runat="server" ID="Label2" Text='<%# Eval("Content1") %>'></asp:Label></p>
                            <a href='<%# Eval("PageUrl") %>' alt="">Read More</a>
                        </div>
                    </div>
                </div>
            </div>
        </AlternatingItemTemplate>
        <ItemTemplate>
            <div id="blog3">
                <div class="col-xs-12">
                    <asp:Image runat="server" ID="Image3" ImageUrl='<%# Eval("NewsStoryImage") %>'/>
                    <div class="blogContent">
                        <div class="container">
                            <h2>Our Blog</h2>
                            <p><asp:Label runat="server" ID="Label1" Text='<%# Eval("PageTitle") %>'></asp:Label></p>
                            <p><asp:Label runat="server" ID="Label2" Text='<%# Eval("Content1") %>'></asp:Label></p>
                            <a href='<%# Eval("PageUrl") %>' alt="">Read More</a>
                        </div>
                    </div>
                </div>
            </div>
        </ItemTemplate>
    </asp:Repeater>

1 个答案:

答案 0 :(得分:1)

不,你不能创建第三个模板。

您可以做的是使用Container.DataItemIndex

确保ID仍然是唯一的
<ItemTemplate>
    <div id="blog<%# Container.DataItemIndex %>"></div>
</ItemTemplate>