基于价值的颜色造型tablecell

时间:2014-05-12 20:07:33

标签: asp.net

我正在尝试根据单元格的文本值设置tablecells的样式。这是在特定字段上完成以吸引用户注意这些tablecells托管在formview内,其中包含一个asp:table对象的itemTemplate。单元格有一个ID,并设置为在服务器端运行,以便我可以从代码隐藏中获取它们。

我试图通过处理tablecell的onDatabound,onPrerender,onLoad事件来挂钩各个单元格。 onPreRender用于我的代码片段,但所有三个tablecell事件的结果都相同。在处理这些事件时,我总是有一个text.empty用于text属性而不是实际值(即使在调用databind之后)。因为我没有实际值,我的比较没有通过,我的颜色样式没有按照需要设置。

编辑:我也试过处理我的formview的数据绑定事件来获取我的单元格值。那里也没有运气。

以下是相关标记:

<asp:FormView ID="fvShipments" runat="server" DefaultMode="readonly">
                <ItemTemplate>
                    <asp:Table ID="tblShipments" runat="server" GridLines="Both">
                        <asp:TableRow runat="server">
                            <asp:TableCell runat="server" ID="tbcCartonSizeOverride" CssClass="table-displayrow centerText" OnPreRender="tbcCartonSizeOverride_PreRender"><%#Eval("CartonSizeOverRide")%></asp:TableCell>

这是相关的代码隐藏

Protected Sub tbcCartonSizeOverride_PreRender(sender As Object, e As EventArgs)
    markAflag(CType(sender, TableCell))
End Sub
Private Sub markAflag(ByRef cell As TableCell)
    If cell.Text.Trim.Length > 0 Then
        cell.BackColor = Drawing.Color.Orange
    Else
        cell.BackColor = Drawing.Color.White
    End If
End Sub

我不明白为什么这不起作用。除非我的Eval标记在预渲染事件之后解决了吗?

感谢阅读。我不经常使用asp,所以我可能会在这里遇到一些简单的混淆。

1 个答案:

答案 0 :(得分:0)

好的我通过在我的formview对象上设置一些datakeys并在运行时执行findcontrol调用以获取对页面上的表的引用来解决此问题。这是一些示例代码,演示了我的所作所为。

 Private Sub colorReturncode()
    Dim schedreturncode As Integer
    schedreturncode = FormView1.DataKey(1)
    Dim qtable As New Table

    qtable = CType(FormView1.FindControl("table1"), Table)
    If schedreturncode = 0 Then
        qtable.Rows(4).Cells(2).BackColor = System.Drawing.Color.Green
        qtable.Rows(4).Cells(2).ForeColor = System.Drawing.Color.White
    ElseIf schedreturncode = -1 Then
        qtable.Rows(4).Cells(2).BackColor = System.Drawing.Color.White

    Else
        qtable.Rows(4).Cells(2).BackColor = System.Drawing.Color.Red
        qtable.Rows(4).Cells(2).ForeColor = System.Drawing.Color.White
    End If
End Sub