2013-04-07 6 views
5

से इवल का मान परिवर्तित करना मेरे पास मेरे डेटाबेस में एक पूर्णांक संग्रहीत है जिसे मुझे स्ट्रिंग को कन्वर्ट करने की आवश्यकता है।int से स्ट्रिंग

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

इस समारोह में मेरी प्रयास है:

यह Eval पर मेरे प्रयास है

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

लेकिन मैं इन त्रुटियों को मिल रहा है:

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 

मेरे पास है Eval में "वेतन प्रकार" का उपयोग किया गया है क्योंकि वह पैरामीटर है जिसमें डेटाबेस से जानकारी है। मुझे पूरा यकीन नहीं है कि व्हा टी मैं गलत कर रहा हूँ ..

उत्तर

9

भले ही आप जानते हैं कि SalaryType क्षेत्र अपने aspx में एक int यह Eval के बाद object के रूप में कास्ट किया जाएगा() हो जाएगा। इसलिए जैसे एक स्पष्ट डाली करें: अपने Eval ओर से int कन्वर्ट करने के लिए

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

प्रयास करें;

Convert.ToInt32(Eval("SalaryType")) 

Eval शायद एक वापसी प्रकार के रूप में object लौट आते हैं।

0

मैं पीछे कोड पर DataItem भेजने के लिए पसंद करते हैं, और वहाँ के रूप में डेटा प्राप्त:

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

    // rest of your code 
} 
पीछे कोड पर

<%#RenderSalaryType(Container.DataItem)%> 

और

संबंधित मुद्दे