2011-04-14 138 views
0

我正在開發一個報表,它使用VB通過ASPX頁面在SQL表中輸出數據。我如何編碼,以便其中一列包含「1」的所有行顯示爲紅色?這是我到目前爲止。這不會導致任何錯誤,但它也不會顯示爲紅色。如何根據行值有條件地更改背景顏色

我不知道這是否是一個問題,但ExceedsLimit和SixInARow變量是在我存儲的特效中的INT,但後來我在下面的代碼中將它們聲明爲字符串。

Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) 
     If e.Item.ItemType = ListItemType.AlternatingItem Or e.Item.ItemType = ListItemType.Item Then 
      Dim ExceedsLimit As String 
      Dim SixInARow As String 
      Dim i As Int16 

      SixInARow = e.Item.Cells(6).Text 
      ExceedsLimit = e.Item.Cells(7).Text 

      If ExceedsLimit = "1" Or SixInARow = "1" Then 
       For i = 0 To 6 
        e.Item.Cells(i).BackColor = System.Drawing.Color.Red 
       Next 
      End If 

     End If 
    End Sub 

和HTML部分:

  <ASP:DATAGRID id="dgTable" runat="server" AUTOGENERATECOLUMNS="true" ShowHeader="true" OnItemDataBound="DataGrid1_ItemDataBound" > 
       <AlternatingItemStyle BackColor = "#eeeeee" /> 
       <HEADERSTYLE BackColor = "#336699" ForeColor = "#ffffff" Font-Bold = "true" /> 
      </ASP:DATAGRID> 

回答

1

您需要的背景色設置爲Item.Style

試試這個:

If ExceedsLimit = "1" Or SixInARow = "1" Then     
    e.Item.BackColor = System.Drawing.Color.Red     
End If 
+0

謝謝!我剛剛嘗試了上面的代碼,但仍然沒有任何行顯示爲紅色。你還有其他建議嗎? – salvationishere 2011-04-14 21:20:34

+0

我只能想到的其他事情是在比較之前修剪ExceedsLimit和SixInaRow。 – Chandu 2011-04-14 21:24:35

+0

謝謝,但這也沒有奏效。謝謝你嘗試! – salvationishere 2011-04-14 21:45:51

相關問題