2012-03-12 10 views
6

में पंक्ति डेटा के आधार पर सेल में सशर्त आउटपुट मेरे पास थोड़ा सा मूल्य है (काला) मैं ग्रिडव्यू में अपनी स्थिति प्रदर्शित करना चाहता हूं जैसे कि यह सच है, पंक्ति "हां" प्रदर्शित करती है, अन्यथा पंक्ति "नो" प्रदर्शित करती है , यह मेरा कोड है, लेकिन परिणाम, सही नहीं है मेरे कोड प्रदर्शन cuz सभी पंक्तियों "हाँ" अगर एक मूल्य सच है, मैं प्रत्येक पंक्ति स्थितिग्रिडव्यू के रोडाटाबाउंड इवेंट

protected void gridview1_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      DataTable dt = GetData(); 
      for (int i = 0; i < dt.Rows.Count; i++) 
      { 
       Boolean bitBlack = Convert.ToBoolean(dt.Rows[i]["Black"]); 
       if (bitBlack) 
       { 
        e.Row.Cells[7].Text = ("Yes"); 
       } 
       else 
       { 
        e.Row.Cells[7].Text = ("No"); 
       } 
      } 
     } 
    } 
+0

GetData() लौटने की विधि क्या है? – Seany84

उत्तर

9

तुम हमेशा पंक्तियों DataItem का उपयोग पाने के लिए कर सकता है अंतर्निहित DataSource:

protected void gridview1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     DataRow row = ((DataRowView)e.Row.DataItem).Row; 
     bool isBlack = row.Field<bool>("Black"); 
     e.Row.Cells[7].Text = isBlack ? "Yes" : "No"; 
    } 
} 
+1

सटीक समाधान, यह काम कर रहा है धन्यवाद टिम – Shehab

+0

मेरे लिए काम करता है लेकिन मामूली अलग संदर्भ में – wubblyjuggly

2

आप एक DataTable के माध्यम से पुनरावृति करने की आवश्यकता है प्रदर्शित करना चाहते हैं प्रत्येक RowDatabound पर डीटी?

आप इस की जरूरत नहीं है आप की कोशिश कर सकते:

protected void gridview1_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 

       Boolean bitBlack = Convert.ToBoolean(e.Row.Cells[7].Text); 
       if (bitBlack) 
       { 
        e.Row.Cells[7].Text = "Yes"; 
       } 
       else 
       { 
        e.Row.Cells[7].Text = "No"; 
       } 

     } 
    } 
+0

थैंक्स सेनी, लेकिन मैंने आपके समाधान की कोशिश की और त्रुटि "सिस्टम ऑब्जेक्ट डालने में असमर्थ" System.Web.UI.WebControls.DataControlFieldCell 'को' System.IConvertible 'टाइप करने के लिए " – Shehab

+0

जोड़ने के लिए भूल गए। त्वरित संपत्ति, कृपया देखें मेरे कोड के संशोधित संस्करण के साथ .ext संपत्ति जोड़ा गया। – Seany84

2

मैं अपने डेटा स्रोत पता नहीं है, लेकिन यदि आप इसका मूल्यांकन कर सकते हैं, तो ऐसा कुछ करें:

<asp:TemplateField HeaderText="Status"> 
      <ItemStyle CssClass="list" /> 
      <ItemTemplate> 
        <%# GetBit(Eval("BlackBit"))%> 
      </ItemTemplate> 
</asp:TemplateField> 

एन डी कोड-पीछे:

private string GetBit(object objBit) 
{ 
    if (Convert.ToInt32(objBit) == 1) 
    { 
     return "Yes"; 
    } 
    return "No"; 
} 
+0

टिम का जवाब सही काम कर रहा है, आप सभी को मदद करने के लिए – Shehab

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