Avatar billede henrik_40 Nybegynder
11. september 2007 - 11:16 Der er 3 kommentarer og
1 løsning

multiple arrays i Repeater

Hejsa
Jeg har lavet et array som bliver overført til en repeater. Outputtet er som følger, hvis vi er i uge 37:
37
36
35
.
.
.
52
51
50
.
.
.
38

Således at det seneste uger ligger øverst.
.cs-filen
----------
        string[] weekArray;
        weekArray = new string[52];
        int week = getWeek();
        int i = 0;
        do
        {
            weekArray[i] = week.ToString();
            if (week > 1)
            {
                week--;
            }
            else
            {
                week = 52;
            }
            i++;
        } while (i < 52);
        linkrepeater.DataSource = weekArray;
        linkrepeater.DataBind();
    }
og repeateren i aspx-filen
--------------------------
      <asp:Repeater id="linkrepeater" runat="server">
          <ItemTemplate>
          <a href="udsigt_week<%# Container.DataItem %>.aspx">Uge  <%# Container.DataItem %></a>
          <asp:Image runat="server" ImageUrl="~/images/ikon-login.gif"/>
        <br>
        <asp:Label runat="server"> </asp:Label>
          </ItemTemplate>
      </asp:Repeater>

Imidlertid ønsker jeg noget tekst til hver uge, således:
37: En god uge
36: En dårlige uge med regnvejr
35: bla bla
.
.
.
52: la la
51: osv.
50: osv. osv.
.
.
.
38: I denne uge...

Altså vil jeg have tilføjet et ekstra felt i arrayet og tilknyttet dette til repeateren. Hvordan gør jeg dette?

/henrik
Avatar billede arne_v Ekspert
12. september 2007 - 03:25 #1
Lav et array an en klasse med 2 properties.
Avatar billede arne_v Ekspert
12. september 2007 - 04:00 #2
Eksempel:

<%@ Page Language="C#" CodeFile="rep.cs" Inherits="E.RepeaterFun" %>
<html>
<head>
</head>
<body>
<form runat=server>
    <table border>
        <asp:Repeater id="WeekArray" runat="server">
            <ItemTemplate>
                <tr>
                <td><%# DataBinder.Eval(Container.DataItem, "Nr") %></td>
                <td><%# DataBinder.Eval(Container.DataItem, "Tekst") %></td>
                </tr>
            </ItemTemplate>
        </asp:Repeater>
    </table>
</form>
</body>
</html>

using System;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace E
{
    public class Week
    {
        private int nr;
        private string tekst;
        public Week() : this(0, "")
        {
        }
        public Week(int nr, string tekst)
        {
            this.nr = nr;
            this.tekst = tekst;
        }
        public int Nr
        {
            get
            {
                return nr;
            }
            set
            {
                nr = value;
            }
        }
        public string Tekst
        {
            get
            {
                return tekst;
            }
            set
            {
                tekst = value;
            }
        }
    }
    public partial class RepeaterFun : Page
    {
        public void Page_Load(Object src, EventArgs e)
        {
            Week[] w = new Week[3];
            w[0] = new Week(37, "En god uge");
            w[1] = new Week(36, "En dårlige uge med regnvejr");
            w[2] = new Week(35, "bla bla");
            WeekArray.DataSource = w;
            WeekArray.DataBind();
        }
    }
}
Avatar billede henrik_40 Nybegynder
03. november 2007 - 02:46 #3
Hej Arne
Undskyld den lange respons-tid. Kunne godt bruge dit svar, så læg mange tak og læg et svar til mig :-)
/henrik
Avatar billede arne_v Ekspert
03. november 2007 - 15:07 #4
kommer her
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester