将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",因为这是具有来自数据库的信息的参数。我不完全确定我做错了什么。

将Eval的值从int型转换为字符串

即使您知道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
}