Configuração Fácil de Listas Suspensas no UltraWebGrid

Se você está atualmente usando o UltraWebGrid da Infragistics e está enfrentando dificuldades ao implementar uma lista suspensa em uma de suas colunas, você não está sozinho. Muitos desenvolvedores encontram desafios semelhantes devido às complexidades envolvidas no uso de componentes de grade de terceiros. Enquanto a documentação oficial pode ser menos útil, este guia tem como objetivo esclarecer seu caminho, capacitando você a implementar corretamente uma lista suspensa nas colunas da sua grade.

Compreendendo o Problema

Na sua tentativa de configurar uma lista suspensa, você pode perceber que o drop-down não exibe os valores esperados. Aqui está o que você provavelmente tem em seu código:

col.Type = ColumnType.DropDownList;
col.DataType = "System.String";
col.ValueList = myValueList;

E você pode ter construído myValueList assim:

ValueList myValueList = new ValueList();
myValueList.Prompt = "Meu texto de prompt";
myValueList.DisplayStyle = ValueListDisplayStyle.DisplayText;

foreach(MyObjectType item in MyObjectTypeCollection) 
{
    myValueList.ValueItems.Add(item.ID, item.Text); // Note que o ID é uma string (não é meu design)
}

No entanto, as células da sua coluna parecem vazias quando renderizadas na página. O que pode estar dando errado?

Solução: Permitir Atualizações de Coluna

O problema muitas vezes se resume a um detalhe simples, mas crucial: a coluna deve permitir atualizações. Se as atualizações não forem permitidas, o UltraWebGrid não renderizará corretamente a lista suspensa.

Veja como habilitar atualizações para sua coluna:

Você precisa definir a propriedade AllowUpdate para a coluna específica como Yes. Isso pode ser feito com a seguinte linha de código:

uwgMyGrid.Columns.FromKey("colTest").AllowUpdate = AllowUpdate.Yes;

Colocando Tudo Junto

Para garantir que sua lista suspensa apareça corretamente, incorpore os seguintes passos:

  1. Defina Sua Coluna de Lista Suspensa: Como você já fez.
  2. Defina o ValueList: Como você fez com myValueList.
  3. Habilite Atualizações: Certifique-se de adicionar a configuração AllowUpdate à sua configuração de coluna.

Exemplo de Código

Aqui está um exemplo consolidado:

// Configuração da coluna
col.Type = ColumnType.DropDownList;
col.DataType = "System.String";
col.ValueList = myValueList;

// Permitir atualizações para a coluna
uwgMyGrid.Columns.FromKey("colTest").AllowUpdate = AllowUpdate.Yes;

// Criando o ValueList
ValueList myValueList = new ValueList();
myValueList.Prompt = "Meu texto de prompt";
myValueList.DisplayStyle = ValueListDisplayStyle.DisplayText;

foreach(MyObjectType item in MyObjectTypeCollection) 
{
    myValueList.ValueItems.Add(item.ID, item.Text);
}

Conclusão

Implementar uma lista suspensa no UltraWebGrid pode ser uma tarefa complicada, mas com essa lista de verificação e exemplos de código, você deve ser capaz de superar os desafios. Lembre-se, sempre assegure-se de que as atualizações estão habilitadas para a coluna — muitas vezes, são as pequenas coisas que fazem uma grande diferença!

Com essa abordagem, você agora deve ver as listas suspensas desejadas populadas nas células da sua grade. Se você encontrar mais problemas, revisar suas propriedades de grade e coluna pode ajudar a resolver quaisquer problemas persistentes.