RadioButtonList 1 行彩色

RadioButtonList 1 Row Coloured

请帮忙。

我正在使用 ASP/VB.net 并且我在后面的代码中有一个从数据库填充的单选按钮。

rdoTheTest.DataSource = Test.Test_Get()
rdoTheTest.DataBind()

我现在在屏幕上看到收音机列表,我想为 1 行着色,当我使用它时,它们都变成相同的颜色。

rdoTheTest.ForeColor = Drawing.Color.Red

以前在使用listview场景时,我可以这样做;

Private Sub LvTheTest_ItemDataBound(sender As Object, e As ListViewItemEventArgs) Handles lvTheTest.ItemDataBound
    Dim SomeTextBox As TextBox = DirectCast(e.Item.FindControl("SomeTextBox"), TextBox)
    If DataBinder.Eval(e.Item.DataItem, "SomeDBVAR") = 1 Then SomeTextBox.ForeColor = Drawing.Color.Red
End Sub

我的意图是这样做;

Private Sub rdoTheTest_DataBinding(sender As Object, e As EventArgs) Handles rdoTheTest.DataBinding
    If DataBinder.Eval(e.Item.DataItem, "SomeDBVAR") = 1 Then sender.ForeColor = Drawing.Color.Red
End Sub

问题是当有 10 行时,在 DataBinding 中只检索到 1 行,而当使用 ListView 时,我得到 10 行,因为您可以使用 Handles ItemDataBound,您可以在每一行拉取时进行操作。

任何想法。

您总是可以在使用 OnDataBound 绑定数据后 为特定的无线电着色 ,例如:

Protected Sub rdoTheTest_DataBound(sender As Object, e As EventArgs)
    rdoTheTest.Items.FindByValue("SomeDBVar").Attributes.Add("style", "color: red")
End Sub

更新:

迭代绑定列表项并根据项值(或文本)设置适当的颜色:

    For Each item As ListItem In rdoTheTest.Items
        If item.Value = "1" Then
            item.Attributes.Add("style", "color: red")
        Else If item.Value = "2" Then
            item.Attributes.Add("style", "color: orange")
        Else 
            item.Attributes.Add("style", "color: green")
        End If
    Next