1

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

我的评估尝试:

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

我的错误:

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

我已经尝试了多种格式化它的方法,但我无法弄清楚!

4

3 回答 3

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

于 2013-04-07T16:09:41.730 回答
0

使用两次Eval

<%# ValidateSalary(Convert.ToInt32(Eval("SalaryFrom")), Convert.ToInt32(Eval("SalaryTo")) %>
于 2013-04-07T15:44:58.980 回答
0

你可以这样通过...

<%# ValidateSalary(Convert.ToInt32(Eval("SalaryFrom")),Convert.ToInt32(Eval("SalaryTo"))) %>
于 2013-04-07T15:45:16.167 回答