2013-04-15 57 views
0

我有一個ASP:DataGrid,我正在顯示記錄。記錄從SQL Server 2008 R2數據庫中提取到一個SqlAdapter,其中用於填充DataSet並綁定到ASP:DataGrid根據單元格值設置ASP DataGrid行顏色

ASP:DataGrid可以跨越多個頁面,每頁限制爲20條記錄。

其中一列是要處理的條目剩餘多少天的值。我想突出顯示任何值爲0 - 1的紅色和任何2 - 5的值。我曾嘗試的方法是將一個函數調用設置的ASP:DataGrid

Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound 
    If (e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem) Then 
     Select Case CType(e.Item.Cells(5).Text, Integer) 
      Case 0 To 1 
       e.Item.BackColor = Drawing.Color.Red 
      Case 2 To 5 
       e.Item.BackColor = Drawing.Color.Orange 
     End Select 
    End If 
End Sub 

OnItemDataBound場這工作完全當第一次加載頁面。如果有多頁記錄,並且您嘗試移動到下一頁,則根本沒有記錄加載,實際上ASP:DataGrid根本不顯示。如果我刪除OnItemDataBound然後ASP:DataGrid正常工作再次(雖然沒有亮點)。

回答

0

所以事實證明,可能代碼實際上是正確的。我在Catch部分的代碼周圍放了一個Try塊,以便在我的數據庫的表中記錄詳細信息。

馬上就顯示出從Select Case

Conversion from string " " to type 'Integer' is not valid. 

一個簡單的變化下面來保證細胞僅有色當一個有效的值出現在所有我需要的。

相關問題