2010-11-29 60 views
1

我正在處理包含GridView的ASP.Net頁面,該頁面由存儲過程返回的客戶訂單填充。我想要做的就是動態改變GridView行的背景顏色來指示優先級。如何動態地將BackColor分配給GridView行?

存儲過程返回一個指示記錄優先級的整數,我想我只需要將整數轉換爲一種顏色,然後使GridView行顯示它。

「使GridView行顯示」部分是讓我很難的部分。

什麼是做到這一點的最好方法是什麼?任何人都可以給我一個例子嗎?

在此先感謝。

+0

什麼語言,C#或vb.net? – 2010-11-29 15:46:59

+0

對不起,我應該提到這一點。我在VB.Net工作。 – ks78 2010-11-29 15:48:47

回答

3

繼樣品溶液:

C#: ASPX:

<asp:GridView ID="GridView1" runat="server" OnRowDataBound="GridView1_RowDataBound" > 
... 
</asp:GridView> 

代碼隱藏:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     int priority = (int)DataBinder.Eval(e.Row.DataItem, "priority"); 
     switch (priority) 
     { 
      case 1: 
       e.Row.BackColor = Drawing.Color.Green; 
       break; 
      case 2: 
       e.Row.BackColor = Drawing.Color.Red; 
       break; 
      default: 
       e.Row.BackColor = Drawing.Color.Black; 
       break; 
     } 
    } 
} 

VB.Net代碼隱藏:

Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound 
    Select Case e.Row.RowType 
     Case DataControlRowType.DataRow 
      Dim priority As Int32 = DirectCast(DataBinder.Eval(e.Row.DataItem, "priority"), Int32) 
      Select Case priority 
       Case 1 
        e.Row.BackColor = Drawing.Color.Green 
       Case 2 
        e.Row.BackColor = Drawing.Color.Red 
       Case Else 
        e.Row.BackColor = Drawing.Color.Black 
      End Select 
    End Select 
End Sub 
相關問題