Hay un control de código fuente abierto en ASP.NET http://dropdowncheckboxes.codeplex.com/ que he utilizado y ha sido muy feliz. También hay un control de fuente abierta de WinForms en http://www.codeproject.com/KB/combobox/extending_combobox.aspx que no parece tan fuerte pero quizás alguien podría combinar lo mejor de ambos. Si está bien implementado, esto es realmente una gran adición a su conjunto de herramientas. Las 2 implementaciones anteriores muestran todos los elementos seleccionados y le dan una cantidad de casillas de verificación relacionadas en un área reducida y con una excelente agrupación. Mi incorporación a la versión de ASP.NET fue permitir que una lista de archivos marcados usara sólo nombres de archivo en lugar de rutas completas si esto se hace demasiado largo. Ver el enlace de arriba para el código completo. Debajo está solo mi adición que se llama en lugar de UpdateSelection en su controlador de devolución de datos:
// Update the caption assuming that the items are files
// If the caption is too long, eliminate paths from file names
public void UpdateSelectionFiles(int maxChars) {
StringBuilder full = new StringBuilder();
StringBuilder shorter = new StringBuilder();
foreach (ListItem item in Items) {
if (item.Selected) {
full.AppendFormat("{0}; ", item.Text);
shorter.AppendFormat("{0}; ", new FileInfo(item.Text).Name);
}
}
if (full.Length == 0) Texts.SelectBoxCaption = "Select...";
else if (full.Length <= maxChars) Texts.SelectBoxCaption = full.ToString();
else Texts.SelectBoxCaption = shorter.ToString();
}
¿Está tan limitado en el espacio como este? ¿Cuántas casillas de verificación habría? – ariel
@ariel: Quiero vincular desde la base de datos. –
Esto realmente no es una buena idea. Los usuarios no esperan ver casillas de verificación en un cuadro combinado. Utilice uno de los otros controles explícitamente diseñados para esto, como un 'CheckedListBox' o incluso mejor, un' ListView'. –