Eval

2013-02-11 19 views
8

का उपयोग कर टेम्पलेटफ़ील्ड में रंग कैसे बदलें मेरे पास ग्रिडव्यू में कई टेम्पलेटफ़िल्ल्ड हैं।
मैं अपने HTML स्रोत में हर <td> बनाना चाहते हैं रंग मेरे डेटाबेस में बचाया बराबर
मैं काम नहीं कर रहा कि मुझे अपने रंग लेकिन साथ <td> अंदर एक <span> टैग देना है नीचे स्थित कोड की कोशिश लेकिन लेकिन ब्राउज़र पर प्रकट नहीं होतेEval

<asp:TemplateField HeaderText="BackGround Color"> 
    <ItemTemplate> 
      <asp:Label ID="lblBackColor" runat="server" 
        BackColor='<%# ConvertFromHexToColor(Eval("BackColor").ToString()) %>'> 
      </asp:Label> 
      <itemstyle width="20%" horizontalalign="Center" /> 
    </ItemTemplate>  
</asp:TemplateField> 

सी # काम कर कोड

public Color ConvertFromHexToColor(string hex) 
{ 
    string colorcode = hex; 
    int argb = Int32.Parse(colorcode.Replace("#", ""), NumberStyles.HexNumber); 
    Color clr = Color.FromArgb(argb); 
    return clr; 
} 

और यह स्रोत एचटीएमएल और अपने ब्राउज़र में सीएसएस कोड है

  <td> 
       <span id="BodyZone__ThemesGrid_lblForeColor_0" style="background-color: #FFFFFF;"></span> 
       <itemstyle width="20%" horizontalalign="Center"> 
        </itemstyle> 
      </td> 

सीएसएस

table.activity_datatable td { 
padding: 8px 15px; 
color: #6c6c6c; 
vertical-align: middle; 
-webkit-transition: all 0.2s; 
} 
+1

अवधि में कोई पाठ नहीं है इसलिए बैकग्रुपेंड –

+0

में कोई रंग नहीं है ** आप प्रत्येक टीडी ** का क्या मतलब है ** –

उत्तर

4

आप अपने लेबल (जो एक अवधि के लिए renders) के अंदर पाठ डालने की आवश्यकता

<asp:TemplateField HeaderText="BackGround Color"> 
    <ItemTemplate> 
    <asp:Label ID="lblBackColor" runat="server" BackColor='<%# ConvertFromHexToColor(Eval("BackColor").ToString()) %>'>PUT_TEXT_HERE</asp:Label> 
    <itemstyle width="20%" horizontalalign="Center" /> 
    </ItemTemplate> 
</asp:TemplateField> 

तुम भी एक पैनल (जो एक div करने के लिए renders का उपयोग कर पसंद कर सकते हैं) एक लेबल के बजाय। Div या span के अंदर सामान डालना न भूलें।

2
ForeColor='<%# Convert.ToString(Eval("ESM")) == "Elective" ? System.Drawing.Color.Green: 
      Convert.ToString(Eval("ESM")) == "Emergency" ? System.Drawing.Color.Red: System.Drawing.Color.Purple%>' 

इस कोड का प्रयास करें ..........

3

आप एक बूलियन मान के साथ जाँच करना चाहते हैं अगर यह सच है तो हरा रंग और कुछ लाल रंग प्रभाव होगा है। फिर Eval फ़ंक्शन के अनुसार संबंधित रंग के साथ टेक्स्ट प्रदर्शित करना। यहां GetStatus एक विधि है जिसे आपको इसे कोड में बनाने के लिए आवश्यक है, इसके साथ हम यूआई को टेक्स्ट बाध्य कर रहे हैं, अन्यथा आप सामान्य रूप से इवल या बाइंड फ़ंक्शन से जुड़ सकते हैं।

ForeColor='<%# (bool)Eval("UserType")==true?System.Drawing.Color.Green:System.Drawing.Color.Red %>' 
           Text='<%# GetStatus((bool)Eval("UserType")) %>'> 
संबंधित मुद्दे