webForumDet fria alternativet

Fylla array med årtal

11 svar · 449 visningar · startad av Josef

JosefMedlem sedan mars 20023 561 inlägg
#1

Jag har fått hjärnsläpp så här på kvällskvisten.

Jag vill fylla en array med årtal genom en loop. Orkar inte sitta o skriva 80 årtal.
Sedan vill jag binda den till en dropdownlist.

Med den här koden (bara för att testa):

private void Page_Load(object sender, System.EventArgs e)
{
	string[] aYears = new string[3]	{"1950","1951","1953"};
	Page.DataBind();
}

får jag bara

The name 'aYears' does not exist in the class or namespace 'ASP.Registration_aspx'

när jag binder den till dropdownlisten. Varför fungerar det inte?

trexterMedlem sedan mars 20021 889 inlägg
#2

Är Page Drop Down:en? I så fall: måste du inte först skriva
Page.DataSource = abc - innan du gör databind?

JosefMedlem sedan mars 20023 561 inlägg
#3

trexter skrev:

måste du inte först skriva
Page.DataSource = abc - innan du gör databind?

Har satt det som en egenskap på dropdownen i VS.NET. Det borde väl räcka?

DinoMedlem sedan sep. 20011 914 inlägg
#4
//.aspx
<asp:dropdownlist id="ddlYears" runat="server" />
//Code-behind
private void Page_Load(object sender, System.EventArgs e)
{
   if(!IsPostBack)
   {
      BindData();
   }
}

public void BindData(){
   string[] aa = new string[80];
   int z = DateTime.Now.Year + 1;
   for(int i = 0; i < 80; i++)
   {
      aa[i] = (z - (i + 1)).ToString();
   }

   ddlYears.DataSource = aa;
   ddlYears.DataBind();
}
trexterMedlem sedan mars 20021 889 inlägg
#5

Josef skrev:

trexter skrev:

måste du inte först skriva
Page.DataSource = abc - innan du gör databind?

Har satt det som en egenskap på dropdownen i VS.NET. Det borde väl räcka?

Tydligen inte? :q Jag testade din kod och lade till DataSOurce och det fungerade...

JosefMedlem sedan mars 20023 561 inlägg
#6

Tackar!

JosefMedlem sedan mars 20023 561 inlägg
#7

trexter skrev:

Josef skrev:

trexter skrev:

måste du inte först skriva
Page.DataSource = abc - innan du gör databind?

Har satt det som en egenskap på dropdownen i VS.NET. Det borde väl räcka?

Tydligen inte? :q Jag testade din kod och lade till DataSOurce och det fungerade...

Jasså!!? :q Använde du precis samma kod som jag?

trexterMedlem sedan mars 20021 889 inlägg
#8

Dino skrev:

int z = DateTime.Now.Year + 1;

Du menar att de är födda i framtiden? :o :p

trexterMedlem sedan mars 20021 889 inlägg
#9

Josef skrev:

trexter skrev:

Josef skrev:

trexter skrev:

måste du inte först skriva
Page.DataSource = abc - innan du gör databind?

Har satt det som en egenskap på dropdownen i VS.NET. Det borde väl räcka?

Tydligen inte? :q Jag testade din kod och lade till DataSOurce och det fungerade...

Jasså!!? :q Använde du precis samma kod som jag?

Jag bytte ut page mot något annat. Var väl det isf...

JosefMedlem sedan mars 20023 561 inlägg
#10

Hur ska jag smidigast lösa det med datumen sen? Eftersom det är olika många dagar i alla månader. Någon som har någon smart lösning på det?

Som det är nu har jag en drop-down med år, en med månad och en med datum.

trexterMedlem sedan mars 20021 889 inlägg
#11

EFter att man valt ett värde i listan med månader kan du köra en metod som med hjälp av DateTime.DaysInMonth kollar hur många dagar det är i den aktuella månaden. Exempel (från dok.):

const int July = 7;
const int Feb = 2;

// daysInJuly gets 31.
int daysInJuly = System.DateTime.DaysInMonth(2001, July);

// daysInFeb gets 28 because the year 1998 was not a leap year.
int daysInFeb = System.DateTime.DaysInMonth(1998, Feb);

// daysInFebLeap gets 29 because the year 1996 was a leap year.
int daysInFebLeap = System.DateTime.DaysInMonth(1996, Feb);
JosefMedlem sedan mars 20023 561 inlägg
#12

Tackar! :bire

129 ms totalt · 3 externa anrop · v20260731065814-full.beb2e261
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)