Преобразование значения Eval из int в string
у меня есть целое число, хранящееся в моей базе данных, которое мне нужно преобразовать string.
Это моя попытка Eval:
<%# ChangeSalaryType(Eval("SalaryType")) %>
Это моя попытка функцию:
public static string ChangeSalaryType(int salaryType)
{
string salaryTime = string.Empty;
if (salaryType == 1)
{
salaryTime = "per hour";
}
else if (salaryType == 2)
{
salaryTime = "per week";
}
else if (salaryType == 3)
{
salaryTime = "per annum";
}
return salaryTime;
}
, но я получаю эти ошибки:
Argument 1: cannot convert from 'object' to 'int'
Error 2 The best overloaded method match for 'controls_allPlacements.ChangeSalaryType(int)' has some invalid arguments
Error 4 The best overloaded method match for 'controls_allPlacements.ChangeSalaryType(int)' has some invalid arguments
я использовал "SalaryType" в Eval, поскольку это параметр, который имеет информацию из базы данных. Я не совсем понимаю, что делаю не так..
3 ответов
попробуйте преобразовать в int
на оценку часть;
Convert.ToInt32(Eval("SalaryType"))
Eval
вероятно object
в качестве возвращаемого типа.
Я предпочитаю отправлять DataItem на код позади, и там получить данные как:
<%#RenderSalaryType(Container.DataItem)%>
и на код
protected string RenderSalaryType(object oItem)
{
int salaryType = (int)DataBinder.Eval(oItem, "SalaryType");
// rest of your code
}