是否可以在Formview的每个模板中独立控制标签文本颜色?

时间:2014-09-22 00:14:26

标签: .net wpf vb.net

我有一个带有标准三个模板的formview,Item,EditItem和InsertItem。我在各个领域使用标签,我根据sql表中的数据控制显示的文本(没问题)。在同一字段的每个模板中使用相同的标签ID号(Label1用于每个模板中的值字段)。是否可以独立控制显示文本的颜色?也就是说,我想仅在EditItem和InsertItem模板中将颜色更改为红色,同时在Item模板中保留黑色。我有一个想法,我可以使用ModeChanged事件来完成这个,但没有运气让它工作。有人有什么建议吗?

Protected Sub FormView1_ModeChanged(sender As Object, e As System.EventArgs) Handles FormView1.ModeChanged

    Dim conCString As String = ConfigurationManager.ConnectionStrings("conCString").ConnectionString
    Dim lbl24 As Label = FormView1.FindControl("Label24")
    Dim sqlConnection As SqlConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("conCString").ConnectionString)
    Dim cmd As New SqlCommand

    cmd.CommandType = CommandType.Text
    cmd.Connection = sqlConnection
    If FormView1.CurrentMode = FormViewMode.Edit Then
        Dim querystring As String = "SELECT [DisplayName], [BuildRules] FROM [BuildFields] WHERE ([TableID] = N'Capacitors') AND (ColumnID = N'Value') ORDER BY [ColumnID]"
        sqlConnection.Open()
        Dim command24 As New SqlCommand(querystring, sqlConnection)
        Dim reader24 As SqlDataReader = command24.ExecuteReader()
        While reader24.Read()
            lbl24.Text = reader24(0)
            If reader24(1) = 255 Then
                lbl24.ForeColor = Color.Red
            Else
                lbl24.ForeColor = Color.Black
            End If
        End While
        sqlConnection.Close()
    End If
End Sub

1 个答案:

答案 0 :(得分:0)

解决方案是将其移动到formview1_databound并使用if语句来确定当前模式并相应地设置颜色。