RadioButtonList 1 Ряд Цветной - PullRequest
       18

RadioButtonList 1 Ряд Цветной

0 голосов
/ 30 апреля 2018

Пожалуйста, помогите.

Я использую ASP / VB.net, и у меня есть переключатель, заполненный из базы данных в коде, подобном этому.

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

Теперь я получаю список радио на экране, и я хочу закрасить 1 строку, когда я использую это, все они имеют одинаковый цвет.

rdoTheTest.ForeColor = Drawing.Color.Red

В прошлом при использовании сценария просмотра списка я мог делать что-то вроде этого;

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

Проблема в том, что только 1 строка извлекается в DataBinding, когда есть 10 строк, и при использовании ListView я получаю 10 строк, потому что вы можете использовать дескрипторы ItemDataBound, которыми вы можете манипулировать при каждом извлечении строк.

Любые идеи.

1 Ответ

0 голосов
/ 30 апреля 2018

Вы всегда можете раскрасить определенное радио после , когда данные были связаны с использованием OnDataBound, например:

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

UPDATE:

Итерация связанных элементов списка и установка соответствующего цвета на основе значения элемента (или текста):

    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        
...