2013-04-07 37 views
5

Tôi có một số nguyên được lưu trữ trong cơ sở dữ liệu của tôi mà tôi cần phải chuyển đổi chuỗi.Giá trị chuyển đổi của một Đánh giá từ int thành chuỗi

Đây là nỗ lực của tôi tại Eval:

<%# ChangeSalaryType(Eval("SalaryType")) %> 

Đây là nỗ lực của tôi ở chức năng:

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; 
} 

Nhưng tôi nhận được các lỗi này:

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 

Tôi có sử dụng "SalaryType" trong Eval như là tham số có thông tin từ cơ sở dữ liệu. Tôi không hoàn toàn chắc chắn wha Tôi đang làm sai ..

Trả lời

9

Mặc dù bạn biết rằng trường SalaryType sẽ là int trong aspx của bạn, nó sẽ được truyền dưới dạng số object sau Eval(). Làm một diễn viên rõ ràng như vậy:

<%# ChangeSalaryType(Convert.ToInt32(Eval("SalaryType"))) %> 
1

Cố gắng chuyển đổi sang int trên Eval phía bạn;

Convert.ToInt32(Eval("SalaryType")) 

Eval có thể trả lại object làm loại trả lại.

0

tôi thích để gửi DataItem trên mã phía sau, và có được những dữ liệu như:

<%#RenderSalaryType(Container.DataItem)%> 

và trên mã đằng sau

protected string RenderSalaryType(object oItem) 
{ 
    int salaryType = (int)DataBinder.Eval(oItem, "SalaryType"); 

    // rest of your code 
} 
Các vấn đề liên quan