通过Eval传递多个参数给函数

本文关键字:参数 函数 Eval 通过 | 更新日期: 2023-09-27 18:07:49

我正在尝试通过Eval传递两个值给函数。

我的函数:

public static string ValidateSalary(int salaryFrom, int salaryTo)
{
    string salary = string.Empty;
    if (salaryFrom == salaryTo)
    {
        salary = "£" + salaryFrom.ToString();
    }
    else 
    {
        salary = "£" + salaryFrom.ToString() + " - £" + salaryTo.ToString();
    }
    return salary;
}

My Eval attempt:

<%# ValidateSalary(Eval("SalaryFrom", "SalaryTo")) %>

我的错误:

Error   5   No overload for method 'ValidateSalary' takes 1 arguments

我已经尝试了多种格式化方法,但我还是不明白!

通过Eval传递多个参数给函数

通过在后面的代码上发送DataItem,您可以获得任何参数:

<%#RenderSalaryType(Container.DataItem)%>

后面的代码
protected string RenderSalaryType(object oItem)
{
    int salaryType = (int)DataBinder.Eval(oItem, "SalaryType");
    string salaryFrom = (int)DataBinder.Eval(oItem, "SalaryFrom").ToString();
    string salaryTo = (int)DataBinder.Eval(oItem, "SalaryTo").ToString();
    // rest of your code
}

类似于https://stackoverflow.com/a/15864175/159270

你可以像这样通过…

<%# ValidateSalary(Convert.ToInt32(Eval("SalaryFrom")),Convert.ToInt32(Eval("SalaryTo"))) %>

使用两次Eval

<%# ValidateSalary(Convert.ToInt32(Eval("SalaryFrom")), Convert.ToInt32(Eval("SalaryTo")) %>