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

时间:2013-04-07 15:42:09

标签: c# asp.net eval

我想通过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;
}

我的Eval尝试:

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

我的错误:

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

我尝试了多种格式化方法,我无法弄明白!

3 个答案:

答案 0 :(得分:1)

通过在代码后面发送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类似

答案 1 :(得分:0)

两次使用Eval

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

答案 2 :(得分:0)

你可以像这样通过......

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