2010-11-26 43 views
0

如何爲綁定的gridview執行自定義輸出?即我有一個數據庫中的布爾字段,而不是寫出真正的,因爲我從<%#DataBinder.Eval(Container.DataItem,「BoolField」)%>得到,我想把一個圖像(如勾號)在網格視圖中。這可能嗎?datagrid中的輸出圖像

回答

1

所有的EVAL首先是邪惡的。有一個eval的解決方案,但我會故意跳過它。

還有2個其他解決方案。您可以使用ImageField並對數據進行變形,以將圖片的相關URL傳遞給您應在ImageField的DataImageUrlField屬性中指定的特殊屬性。

另一種解決方案是添加一個帶有Image控件的模板字段並處理RowDataBound事件從事件參數中獲取行的數據e.Row.DataItem將其轉換爲數據源中項目的類型,提取布爾值。然後,您可以使用FindControl來獲取Image控件並分配其屬性。事情是這樣的:

protected void Page_Load(object sender, EventArgs e) 
{ 
    gvTest.DataSource = new bool[] { true, false }; 
    gvTest.DataBind(); 
} 

protected void gvTest_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     Image imgBool = (Image)e.Row.FindControl("imgBool"); 
     bool data = (bool)e.Row.DataItem; 
     if (data) 
     { 
      imgBool.ImageUrl = "/images/true.jpg"; 
      imgBool.AlternateText = "This is true"; 
     } 
     else 
     { 
      imgBool.ImageUrl = "/images/false.jpg"; 
      imgBool.AlternateText = "This is false"; 
     } 
    } 
}

這似乎是一個大量的工作,但要記住,你可以使用同樣的處理程序,在以類型安全的方式網格的所有colums工作。

0
+0

你看了我寫的東西,或者只是谷歌搜索了嗎?我不想輸出圖片網址。 – Sam 2010-11-26 15:51:13

+0

img html標籤需要src參數。它指定了一個圖像的URL – 2010-11-26 15:56:37