Jag tror inte att du kan använda en for-sats på det här sättet, en programmeringsmässig kullerbytta. :) HyperLink1 är kontrollens id skriver du på det här sättet så blir kontrollens id exakt HyperLink1, inte HyperLink11, HyperLink12 osv... du kan bara stoppa in *i ett index... exempelvis Item *som då körs som Item[1], Item[2] osv...
Jo men jag försöker deklarera HyperLink som en array men det vill inte fungera.
protected System.Web.UI.WebControls.HyperLink[] HyperLink1;
Man man inte göra på detta sättet? Måste jag skapa en ny HyperLink för varje länk?
Property or indexer 'string.this[int]' cannot be assigned to -- it is read only
När jag försöker deklara såhär:
protected System.Web.UI.WebControls.HyperLink[] HyperLink1;
Så får jag felmeddelden då jag debuggar:
The base class includes the field 'HyperLink1', but its type (System.Web.UI.WebControls.HyperLink[]) is not compatible with the type of control (System.Web.UI.WebControls.HyperLink).
Och det felet får jag på min usercontrol, inte c#-koden.
Alltså, jag tror du ska tänka om lite här. :) Det är möjligt att du kan göra en hyperlinkarray, men det är ju inte precis det smidigaste sättet. Du blandar ihop kod och utseende way too much! Varför gör du inte en datagrid istället och skriver ut länkarna i den (eller hur du nu vill ha dem)? Där finns det ju hyperlinkcolumns färdiga att använda, lätt och enkelt.
Du måste tänka om från början. Det är klart att du KAN skapa allt i koden, men då lägger man inte till Webbkontrollerna (alltså radiobutton eller hyperlink) i en datatabell eller array i koden!
Lättast är att skapa tabellen med färdiga webbkontroller såsom Datagrid eller DataList eller Repeaters.
Annars kan du givetvis skapa DataGrids bara på kodsidan. Ex:
DataTable dt = new DataTable();
DataColumn dc1 = new DataColumn("Kolumn1",Type.GetType("System.String"));
DataColumn dc2 = new DataColumn("Kolumn2",Type.GetType("System.Int32"));
DataColumn dc3 = new DataColumn("Kolumn3",Type.GetType("System.Boolean"));
dt.Columns.Add(dc1);
dt.Columns.Add(dc2);
dt.Columns.Add(dc3);
DataRow dr = dt.NewRow();
dr["Kolumn1"]="Kalle";
dr["Kolumn2"]=12;
dr["Kolumn3"]=false;
dt.Rows.Add(dr);
DataRow dr2 = dt.NewRow();
dr2["Kolumn1"]="Pelle";
dr2["Kolumn2"]=13;
dr2["Kolumn3"]=true;
dt.Rows.Add(dr2);
DataGrid dg = new DataGrid();
dg.DataSource=dt;
dg.DataBind();
Vips! Du har en htmltabell med tre kolumner och två rader. Men det är givetvis smidigare att göra DataGriden i ASp.Net och tabellerna bakom...