根据值设置一个字段和行的gridview文本格式

根据值设置一个字段和行的gridview文本格式,gridview,Gridview,我有以下代码来改变网格视图中行的颜色。这很好,我尝试做的是将日期返回值的文本颜色(如果相同)更改为行的相同颜色,因此无法看到值 有人能帮忙吗 Protected Sub KitNotReturned(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound If e.Row.RowType = DataControlRowType.D

我有以下代码来改变网格视图中行的颜色。这很好,我尝试做的是将日期返回值的文本颜色(如果相同)更改为行的相同颜色,因此无法看到值

有人能帮忙吗

Protected Sub KitNotReturned(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound

        If e.Row.RowType = DataControlRowType.DataRow Then

            Dim dateLoaned As String = DataBinder.Eval(e.Row.DataItem, "DateLoaned")
            Dim dateReturend As String = DataBinder.Eval(e.Row.DataItem, "DateReturned")

            If dateLoaned = dateReturend Then

                e.Row.BackColor = Drawing.Color.HotPink


            End If
        End If

    End Sub

谢谢

好的-现在我明白了!为gridview列设置枚举通常是个好主意-例如:

Enum GvColumn
  Id = 0
  Name = 1
  ...
  DateReturned = 4
End Enum
然后,您可以将该列称为:

e.Row.Cells(GvColumn).ForeColor
这使得您在添加/删除列时不太可能出现错误,前提是您使枚举保持最新。 当然,另一种方法是将单元格的text属性设置为空字符串:

e.Row.Cells(GvColumn).Text=""
最后,您可以将该列设置为模板列,然后使用FindControl在其中查找文本框。模板列将如下所示:

<asp:TemplateColumn Header="Something here">
<ItemTemplate>
<asp:textbox id="txtDateReturned" runat="server" text=='<%# Bind("DateReturnedText") %>' />
</ItemTemplate>
</asp:TemplateColumn>

只是一些想法

不太清楚你在问什么,如果你说这工作正常?我必须更改行颜色的代码工作正常,我只想添加一些东西来更改数据项DateReturned文本的颜色。我已经使用e.row.Cells(4)完成了这项操作。ForeColor=Drawing.Color.HotPink thanksOK-现在我明白了!为gridview列设置枚举通常是个好主意-例如:
Dim tb as TextBox = CType(e.Row.FindControl("txtDateReturned"),TextBox)