我正在尝试使用重复而不将其绑定到数据源,这可能吗?
<asp:Repeater runat="server" ID="rptPageNav">
<ItemTemplate>
<asp:HyperLink runat="server" CssClass="pageLink" ID="pageLink">#</asp:HyperLink>
</ItemTemplate>
</asp:Repeater>
然后在我的代码中,我想循环为每个可用链接添加转发器项目模板。
for (int i = 0; i < thisTemplate.specification.pagination; i++)
{
}
所以最终结果应该是这样的:
<a class="pageLink" href="#">1</a>
<a class="pageLink" href="#">2</a>
<a class="pageLink" href="#">3</a>
<a class="pageLink" href="#">4</a>
答案 0 :(得分:2)
或者,如果您只想要单个简单链接,则不需要使用Repeater IMO,您可以使用简单的Panel,然后即时创建链接:
for (int i = 1; i < 5; i++) {
HyperLink link = new HyperLink();
link.CssClass = "pageLink";
link.NavigateUrl = "#";
link.Text = i.ToString();
MyPanel.Controls.Add(link);
}
答案 1 :(得分:1)
创建一个直到您需要的整数数组,并将其绑定到转发器,使用该值作为超链接的文本。
答案 2 :(得分:1)
不,您必须将Repeater绑定到某种数据源。尝试使用@Paddy建议的一系列整数。
顺便提一下,您需要修改<ItemTemplate>
标记内的标记,以使您的超链接在示例中显示在另一个之上。
答案 3 :(得分:0)
MSDN将asp:Repeater
定义为
允许的数据绑定列表控件 通过重复指定的自定义布局 显示的每个项目的模板 清单。
这实质上意味着我们必须将它绑定到数据源。为什么不尝试和实现这样的东西
标记
<asp:Repeater runat="server" ID="rptPageNav">
<ItemTemplate>
<asp:HyperLink ID="pageLink" runat="server" CssClass="pageLink" NavigateUrl='<%# Eval("Link") %>'><%# Eval("Title") %></asp:HyperLink>
</ItemTemplate>
</asp:Repeater>
代码
public partial class Repeater : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
List<URL> urls = new List<URL>()
{
new URL(){ Link = "http://www.google.com", Title = "Google"},
new URL(){ Link = "http://www.yahoo.com", Title = "Yahoo"}
};
rptPageNav.DataSource = urls;
rptPageNav.DataBind();
}
}
}
public class URL
{
public string Link { get; set; }
public string Title { get; set; }
}