簡體   English   中英

根據單元格值設置ASP DataGrid行顏色

[英]Set ASP DataGrid row color based on cell value

我有一個ASP:DataGrid 。對此我在顯示記錄的記錄是從SQL Server 2008 R2的數據庫中抽取到的SqlAdapter這是用來填充DataSet ,並且結合到ASP:DataGrid

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

列之一是一個值,表示剩余多少天要處理該條目。 我想突出顯示紅色值為0-1且oracle為2-5的值。 我嘗試過的方法是將函數調用設置為ASP:DataGridOnItemDataBound字段

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

首次加載頁面時,此方法非常有效。 如果記錄多於一頁,而您嘗試移至下一頁,則根本不會加載任何記錄,實際上ASP:DataGrid根本不會顯示。 如果我刪除OnItemDataBoundASP:DataGrid可以再次正常運行(盡管沒有突出顯示)。

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

立刻顯示出來自Select Case的以下內容

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

我需要做的一個簡單更改就是確保僅當存在有效值時才對單元格進行着色。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM