2011-02-08 4 views
0

J'essaie d'utiliser la répétition sans la lier à une source de données, est-ce possible? Puis, dans mon code, je veux boucler en ajoutant le modèle d'élément de répéteur pour chaque lien disponible.ASP.net simple répéteur question

  for (int i = 0; i < thisTemplate.specification.pagination; i++) 
      { 

      } 

Ainsi, les résultats finaux devraient être quelque chose comme:

   <a class="pageLink" href="#">1</a> 
       <a class="pageLink" href="#">2</a> 
       <a class="pageLink" href="#">3</a> 
       <a class="pageLink" href="#">4</a> 

Répondre

2

Sinon, si vous ne souhaitez que seul lien simple que vous n'avez pas besoin Répéteur OMI vous pouvez avoir simple panneau puis créer les liens à la volée:

for (int i = 1; i < 5; i++) { 
    HyperLink link = new HyperLink(); 
    link.CssClass = "pageLink"; 
    link.NavigateUrl = "#"; 
    link.Text = i.ToString(); 
    MyPanel.Controls.Add(link); 
} 
+0

+1 D'accord, si l'OP veut ajouter des liens dans une boucle for, en effet le répéteur ne sert à rien but et votre code est beaucoup plus facile à mettre en œuvre. – Bazzz

1

Créer un tableau d'entiers jusqu'à ce que vous avez besoin et liez-à votre répéteur, en utilisant la valeur que le texte de votre lien hypertexte.

1

Non, vous devez lier un répéteur à un type de source de données. Essayez d'utiliser un tableau d'ints comme le suggère @Paddy. Par ailleurs, vous devrez modifier le balisage dans les balises <ItemTemplate> pour que vos liens hypertexte s'affichent l'un au-dessus de l'autre, comme dans votre exemple.

0

MSDN définit asp:Repeater comme

Un contrôle de liste lié aux données qui permet mise en page personnalisée en répétant un modèle spécifié pour chaque élément affiché dans la liste.

Ce qui signifie essentiellement que nous devons le lier à une source de données. Pourquoi ne pas vous essayer de implemt quelque chose comme ça

Markup

<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> 

code

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; } 
}