Como posso exibir o texto ao lado de cada botão de opção ao carregar uma lista radiobutton de uma enumeração?

StackOverflow https://stackoverflow.com/questions/811693

  •  03-07-2019
  •  | 
  •  

Pergunta

Eu estou carregando uma lista radiobutton de uma enumeração (exibido verticalmente). Eu preciso mostrar texto que descreve cada seleção radiobutton. Eu estou carregando-o no codebehind.

Foi útil?

Solução

Há muito poucos aspectos da classe Enum que eu encontrei mais e mais usos para recentemente, e um deles é o Método GetNames. Este método retorna uma matriz de cadeia de todos os nomes em uma enumeração especificado.

Este código assume que você tem um RadioButtonList na sua página chamado RadioButtonList1 .

public enum AutomotiveTypes
{
    Car,
    Truck,
    Van,
    Train,
    Plane
}

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string[] automotiveTypeNames = Enum.GetNames(typeof(AutomotiveTypes));

        RadioButtonList1.RepeatDirection = RepeatDirection.Vertical;

        RadioButtonList1.DataSource = automotiveTypeNames;
        RadioButtonList1.DataBind();
    }
}

Give que um giro, e ver se ele faz o truque para você.

Felicidades!

Outras dicas

Você deve ser capaz de usar a propriedade .Text no controle.

http://www.w3schools.com/ASPNET/control_radiobutton.asp

EDIT:

Na verdade eu acho miss-ler a pergunta, eu acredito que este é o que você está procurando

For Each val As [Enum] In [Enum].GetValues(GetType(YourEnum))
        Radio Button Add Logic Here
Next

Algumas ideias são: ou ter um dicionário que mapeia Descrição cordas para valores enum, ou você pode decorar o seu valores enum com um atributo.

Eu tenho uma pequena biblioteca, mesmo código etc, que fornece uma interface agradável para usar atributos em enums para este fim.

http: // daniel -mcadam.com/blog/2009/11/05/User-Display-Text-For-Enums.aspx

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top