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

问题描述:

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

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 
+0

我猜这个WPF相关;如果是这样,您可能需要添加适当的标签以获得正确的关注 – Plutonix 2014-09-22 00:28:33

的解决方案是移动这对formview1_databound并使用if语句来确定当前模式,并且相应地设置的颜色。