webForumDet fria alternativet

Få in värde från repeater in i funktion

.NET

6 svar · 363 visningar · startad av wallabou

Medlem sedan apr. 200487 inlägg
Frågan#1

Hej, jag har en repeater som ska skriva ut sökresultat. Allt man söker på ligger i olika kateogrier och är nummrerade 1,2,3 osv. Jag har gjort en funktion för att skriva om detta till kategorins riktiga namn. Men nu är problemet att jag inte lyckas få värdet från repeatern till min funktion, några tips på hur man kan göra?

//Edward

Medlem sedan apr. 20012 266 inlägg
#2

Ett exempel:

protected minFunktion(int id)
{
   if (id == 1)
      return "Kategori 1";
   else if (id == 2)
      return "Kategori 1";
   else
      return string.Empty;
}

Från din sida:

<%# minFunktion(värdet) %>
Medlem sedan apr. 200487 inlägg
#3

Min kod ser ut såhär:

<%# Funktioner.GetCategory(DataBinder.Eval(Container.DataItem, "kat")) %>

och min code-behind:

 
public static string GetCategory(string stringKat)
{
int intKat = Convert.ToInt32(stringKat);
string[] strKat = {"Datorrelaterat","Filmrelaterat","Samhällsrelaterat","Datorrelaterat","Hemsiderelaterat",null,"Filmrecensioner","Spelrecensioner","Mobilrecensioner",null,"Citat","Historier","Listor","Texter","Musik & Film","Internet","Verktyg","Spel","Filmer","Onlinespel","Flashfilmer"};
string strCurrKat;
strCurrKat = strKat.GetValue(intKat-1).ToString();
return strCurrKat;
}

Men jag får följande fel:
CS1502: The best overloaded method match for 'Funktioner.GetCategory(string)' has some invalid arguments

Medlem sedan apr. 20012 266 inlägg
#4

<%# Funktioner.GetCategory((string)DataBinder.Eval(Container.DataItem, "kat")) %>
eller
<%# Funktioner.GetCategory(DataBinder.Eval(Container.DataItem, "kat").ToString()) %>

Bäst vore förstås att inte använda DataBinder.Eval alls utan gå direkt mot DataItem objektet och sedan slippa konvertera strängen till int i funktionen. För att göra detta måste du veta vilken datakälla du har.

Medlem sedan apr. 200487 inlägg
#5

Nu får jag följande fel:
System.InvalidCastException: Specified cast is not valid.

Och om jag kör utan DataBinder får jag ingen ordning alls på.

Medlem sedan apr. 20012 266 inlägg
#6

Vad har du för datakälla? DataTable? DataReader?

Medlem sedan apr. 200487 inlägg
#7

Det har löst sig nu, skrev som ditt andra exempel däruppe och det funkade. Tyckte jag hade gjort så flrut men tydligen inte.

268 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)