Существует элемент управления с открытым исходным кодом ASP.NET на http://dropdowncheckboxes.codeplex.com/, который я использовал и был очень доволен.Существует также элемент управления с открытым исходным кодом WinForms на http://www.codeproject.com/KB/combobox/extending_combobox.aspx, который выглядит не так сильно, но, возможно, кто-то мог бы объединить лучшее из обоих.Если все реализовано правильно, это действительно отличное дополнение к вашему инструментарию.Вышеупомянутые 2 реализации показывают все выбранные элементы и дают вам ряд связанных флажков в уменьшенной области и с отличной группировкой.Мое добавление к версии ASP.NET состояло в том, чтобы разрешить списку проверенных файлов использовать только имена файлов вместо полных путей, если это становится слишком длинным.См. Ссылку выше для полного кода.Ниже приведено только мое дополнение, которое вызывается вместо UpdateSelection в вашем обработчике обратной передачи:
// 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();
}