问题
I am trying to insert items into a listbox in my asp.net C# application
I concatenate some values and put whitespace in between them but it doesn't show up in the listbox.
ListItem lt = new ListItem();
lt.Text = ItemName + " " + barcode + " " + price; // problem
lt.Value = barcode;
lstMailItems.Items.Add(lt);
i even tried
lt.Text = ItemName + "\t\t" + barcode + "\t\t" + price; // problem
lt.Text = ItemName + "& nbsp;" + barcode + "& nbsp;" + price; //   shows up as text
but that even doesn't seem to work. How can I put whitespace between these strings so that it shows up in the listbox as well
回答1:
string spaces = Server.HtmlDecode(" ");
lt.Text = ItemName + spaces + barcode + spaces + price; // works
回答2:
I had the same issue and the above answers led me to this which worked for me.
string space = " ";
space = Server.HtmlDecode(space);
line = line.Replace(" ", space);
ClassCodeListBox.Items.Add(line);
回答3:
Try
lt.Text = string.Format("{0}\ \;{1}\ \;{2}",ItemName,barcode,price);
Replace \ \ with   If you cannot see.
Or
lt.Text = string.Format("{0} {1} {2}",ItemName,barcode,price);
回答4:
Here are two examples that work well, and how to get the current formatted:
var SaleItem = new
{
name = "Super Cereal",
barcode = "0000222345",
price = 2.55m
};
ListItem lt = new ListItem();
string space = " ";
lt.Text = String.Concat(SaleItem.name,
space, SaleItem.barcode, space, SaleItem.price);
lt.Value = SaleItem.barcode;
ListItem lt2 = new ListItem();
lt2.Text = string.Copy(String.Format("{0}: {1} {2}",
SaleItem.name, SaleItem.barcode, SaleItem.price.ToString("C")));
lt2.Value = SaleItem.barcode;
lstMailItems.Items.Add(lt);
lstMailItems.Items.Add(lt2);
来源:https://stackoverflow.com/questions/1237425/insert-whitespace-between-characters-in-listbox