将Eval的值从int型转换为字符串
本文关键字:转换 字符串 int Eval | 更新日期: 2023-09-27 18:08:07
我有一个整数存储在我的数据库中,我需要转换字符串。
这是我对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
我在Eval中使用了"SalaryType",因为这是具有来自数据库的信息的参数。我不完全确定我做错了什么。
即使您知道SalaryType
字段将是您的aspx中的int
,它将在Eval()之后转换为object
。执行如下显式强制转换:
<%# ChangeSalaryType(Convert.ToInt32(Eval("SalaryType"))) %>
尝试在Eval部分转换为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
}