2012-03-12 12 views
6

Bir bit değerine (Black) sahip olduğumu görüyorum. Durumunu grid görünümünde görüntülemek istiyorum, true, satır ekranı "Yes", aksi halde satır "No" görüntülenir. bir değer doğruysa tüm satırları "Evet" iGridview'in RowDataBound olayındaki satır verilerine göre hücre içindeki koşullu çıktı

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() yöntemi geri dönüşü nedir? – Seany84

cevap

9

Hep almak için Satırlar DataItem kullanabilirsiniz DataSource yatan: Ben senin veri kaynağı bilmiyorum

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

tam çözüm, çalışıyor Teşekkür ederiz Tim – Shehab

+0

Benim için çalışıyor ama biraz farklı bir bağlamda – wubblyjuggly

2

bir DataTable arasında yineleme gerekiyor mu her satır durumunu görüntülemek istediğiniz, bu benim kodudur, ancak sonuç benim kod ekrana kuzen doğru değil her RowDatabound üzerinde dt? Eğer bu gerekmiyorsa

deneyebilirsin:

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

Thanx Seany, ama çözümünü denedim ve "System.Web.UI.WebControls.DataControlFieldCell" türünde nesne yazamıyor. "System.IConvertible" yazıp " – Shehab

+0

.Text özelliğini ekleyin. kodumun .Text özelliği ile gözden geçirilmiş sürümü eklendi. – Seany84

2

ama Bunu değerlendirirseniz, şu gibi bir şey yapın:

Bir d code-behind:

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

Tim'in cevap mükemmel çalışıyor, size yardım için hepinize thanx – Shehab

İlgili konular