2011-07-16 112 views
0

我有一個數據表是這樣的:更改數據表列值

Attribute   Percentage  ReferenceAmount  TaxAmount 
------------  ------------  ----------------  ----------- 
    Sales    5.00    5000     250 
    VAT    2.00    250     5 
    Discount   0     0     100 

我想綁定這個數據表與一個GridView控件。 但在GridView中,我不想顯示0.而不是零,我只是想讓該單元格爲空。如果包含零,我不想顯示任何其他東西。 如何在DataTable中替換EmptyString而不是零?

回答

1

以下的GridView數據綁定方法會遍歷GridView中的每一個細胞和替換「0」爲空字符串:

 protected void GridView1_DataBound(object sender, EventArgs e) 
     { 
      foreach (GridViewRow row in GridView1.Rows) 
      { 
       for (int i = 0; i < row.Cells.Count - 1; i++) 
       { 
        if (row.Cells[i].Text == "0") 
        { 
         row.Cells[i].Text = ""; 
        } 
       } 
      } 
     } 
1

您可以輕鬆地添加一個名爲PercentageDescription的財產作爲字符串

public string PercentageDescription 
{ 
    return Percentage == 0 ? " " : Percentage.ToString(); 
} 
2

我回答的問題很晚,我知道答案已經被接受。但在接受的答案中,您正在迭代數據綁定後的行,然後設置該值。

最好在DataBinding時間替換該值。它會超過gridview行迭代的額外開銷。

您可以使用GridView的RowDataBound事件。這裏是完整的代碼..

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
if (e.Row.RowType == DataControlRowType.DataRow) 
{ 
    System.Data.DataRow dr = ((System.Data.DataRowView)e.Row.DataItem).Row; 

    if (dr["Percentage"].ToString() == "0") 
    { 
     ((Label)e.Row.FindControl("lblPercentage")).Text = ""; 
     //this is template field 
     //OR---If you don't use template field you can do like..-- 
     e.Row.Cells[1].Text = ""; 
    }  
} 
} 
+0

@Akhtar:無論如何非常感謝你。到目前爲止,我從你身上學到了很多東西...... – thevan