Ok Je suis assez honteux Je poste pour de l'aide avec ça, mais c'est parti. J'ai juste besoin d'afficher des données dans 3 colonnes ajustées uniformément dans la liste déroulante.Rembourrage de cordes pour des colonnes ajustées uniformément
Voici le code pour ajuster le remplissage de chaque chaîne en fonction de la chaîne de longueur maximale. La deuxième colonne semble correcte mais la dernière est désactivée par le décalage de la différence de longueur maximale - longueur de chaîne. Je ne peux pas comprendre pourquoi ...
List<Data> list = new List<Data>();
Data d = new Data() { Data1 = "328989892787", Data2 = "MNJK", Data3="23" };
Data b = new Data() { Data1 = "343567", Data2= "HJKLLL", Data3="2345" };
Data g = new Data() { Data1 = "64737", Data2="UI", Data3="234" };
Data f = new Data() { Data1 = "878437878223245", Data2="", Data3="45653" };
Data a = new Data() { Data1 = "234", Data2 = "DataMe", Data3="1"};
list.Add(d);
list.Add(b);
list.Add(g);
list.Add(f);
list.Add(a);
var sorted1 = list.OrderByDescending(q => q.Data1.Length).ToList();
var sorted2 = list.OrderByDescending(s => s.Data2.Length).ToList();
var sorted3 = list.OrderByDescending(r => r.Data3.Length).ToList();
int maxd1 = sorted1[0].Data1.Length;
int maxd2 = sorted2[0].Data2.Length;
int maxd3 = sorted3[0].Data3.Length;
ListItem item = null;
foreach (var dd in list)
{
string result = string.Format("{0}{1}{2}",
dd.Data1.PadRight(40 + (maxd1 - dd.Data1.Length), '\u00A0'),
dd.Data2.PadRight(50 +(maxd2 - dd.Data2.Length), '\u00A0'),
dd.Data3);
this.DropDownList1.Items.Add(new ListItem(result, dd.Data1));
}
Pouvez-vous ajouter un exemple de sortie? Pas clair sur ce que "décalage de la différence de longueur max - longueur de la chaîne" ressemble à ... –
@James voici la sortie prise de la liste déroulante: – dexter
Suis-je manquant quelque part? –