2013-04-07 129 views
1

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

我的评估和演示的尝试:

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

我的错误:

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

我试过格式化的多种方式,我想不通出来!

+0

'<%#ValidateSalary(EVAL( “SalaryFrom”),评估和演示( “SalaryTo”))%>类似' – 2013-04-07 15:44:40

+0

我已尝试@caerolus,我得到更多的错误回报。 – lauw0203 2013-04-07 15:45:37

+0

@ lauw0203如果您在上一个问题中看到我的回答http://stackoverflow.com/a/15864175/159270,您可以注意到,您可以在后面的代码中获得任何参数,只需传递DataItem – Aristos 2013-04-07 16:07:28

回答

0

你可以通过就像这个...

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

Thanks @ amit-singh ,我尝试使用一个转换,但不是另一个,所以我仍然得到错误! – lauw0203 2013-04-07 15:47:17

+0

你得到了什么错误 – 2013-04-07 15:50:47

0

使用Eval两次

<%# ValidateSalary(Convert.ToInt32(Eval("SalaryFrom")), Convert.ToInt32(Eval("SalaryTo")) %> 
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