2011-02-25 45 views
0

我的GridView控件不使用的控制,因爲它是填充使用表達式更改基於模板列的GridView行的顏色,不受管制

<asp:TemplateField HeaderText="As Of Sales"> 
<ItemTemplate> 
<%#Getsales(Decimal.Parse(Eval("asofsales").ToString())).ToString("C0")%> 
</ItemTemplate> 
<FooterTemplate> 
<%#Getsales1().ToString("C0")%> 
</FooterTemplate> 
    <FooterStyle Font-Bold="True" /> 
</asp:TemplateField> 

我想比較列索引1和列索引8,如果8更大然後1它應該是一個不同的字體顏色。

Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) 

    If e.Row.RowType = DataControlRowType.DataRow Then 
     Dim x As String 
     x = e.Row.Cells(1).Text 

     Dim y As String 
     y = e.Row.Cells(8).Text 

     If Convert.ToInt32(x) <= Convert.ToInt32(y) Then 
      e.Row.ForeColor = System.Drawing.Color.Blue 
     End If 

    End If 
End Sub 
+5

那麼你發佈的代碼的實際問題是什麼? – TheGeekYouNeed 2011-02-25 22:14:52

+0

多數民衆贊成在我想什麼時,我寫了它,但它並沒有比較兩列,因爲顏色不變 – MyHeadHurts 2011-02-26 14:23:37

回答

1

這裏的東西,你可以嘗試

在GridView

<asp:GridView runat="server" ID="grdv" AutoGenerateColumns="false"> 
    <Columns> 
     <asp:TemplateField HeaderText="T1"> 
      <ItemTemplate> 
      <%# Eval("T1")%> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="T2"> 
      <ItemTemplate> 
      <%# Eval("T2")%> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
    </asp:GridView> 

代碼隱藏

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 

    Dim d As New DataTable 
    d.Columns.Add("T1") 
    d.Columns.Add("T2") 
    d.Rows.Add(1, 2) 

    grdv.DataSource = d 
    grdv.DataBind() 

End Sub 


Private Sub grdv_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles grdv.RowDataBound 

    Dim data As DataRowView = e.Row.DataItem 
    If data Is Nothing Then Exit Sub 

    If e.Row.RowType = DataControlRowType.DataRow Then 

     If data.Item("T1") <= data.Item("T2") Then e.Row.ForeColor = Color.Red 

    End If 

End Sub 

這應該結合一個DataTable工作。如果您使用的是集合,那麼RowDataBound事件將需要稍微改變。

+0

謝謝你,完美的工作 – MyHeadHurts 2011-02-28 14:08:25

+0

很高興,幫助 – 2011-02-28 14:41:00