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) %>
6 svar · 363 visningar · startad av wallabou
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
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) %>
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
<%# 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.
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å.
Vad har du för datakälla? DataTable? DataReader?
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.