我有一个带有标准三个模板的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
答案 0 :(得分:0)
解决方案是将其移动到formview1_databound并使用if语句来确定当前模式并相应地设置颜色。