c# - usando - UltraWebGrid: Cómo usar una lista desplegable en una columna
lista desplegable excel condicionada (3)
Estoy usando la grilla Infragistics y estoy teniendo dificultades para usar una lista desplegable como selector de valor para una de mis columnas.
Intenté leer la documentación, pero la documentación de Infragistics no es tan buena. También he echado un vistazo a esta discusión sin suerte.
Lo que estoy haciendo hasta ahora
col.Type = ColumnType.DropDownList;
col.DataType = "System.String";
col.ValueList = myValueList;
donde myValueList
es:
ValueList myValueList = new ValueList();
myValueList.Prompt = "My text prompt";
myValueList.DisplayStyle = ValueListDisplayStyle.DisplayText;
foreach(MyObjectType item in MyObjectTypeCollection)
{
myValueList.ValueItems.Add(item.ID, item.Text); // Note that the ID is a string (not my design)
}
Cuando miro la página, espero ver una lista desplegable en las celdas de esta columna, pero mis columnas están vacías.
Aquí hay un ejemplo de una de mis páginas:
UltraWebGrid uwgMyGrid = new UltraWebGrid();
uwgMyGrid.Columns.Add("colTest", "Test Dropdown");
uwgMyGrid.Columns.FromKey("colTest").Type = ColumnType.DropDownList;
uwgMyGrid.Columns.FromKey("colTest").ValueList.ValueListItems.Insert(0, "ONE", "Choice 1");
uwgMyGrid.Columns.FromKey("colTest").ValueList.ValueListItems.Insert(1, "TWO", "Choice 2");
He encontrado lo que estaba mal.
La columna debe permitir actualizaciones.
uwgMyGrid.Columns.FromKey("colTest").AllowUpdate = AllowUpdate.Yes;
public void MakeCellValueListDropDownList(UltraWebGrid grid, string columnName, string valueListName, string[] listArray)
{
//Set the column to be a dropdownlist
UltraGridColumn Col = grid.Columns.FromKey(columnName);
Col.Type = ColumnType.DropDownList;
Col.DataType = "System.String";
try
{
ValueList ValList = grid.DisplayLayout.Bands[0].Columns.FromKey(columnName).ValueList;
ValList.DataSource = listArray;
foreach (string item in listArray)
{
ValList.ValueListItems.Add(item);
}
ValList.DataBind();
}
catch (ArgumentException)
{
}
}