我正在构建一个值以显示在下拉选择框中。该值由货币值和用户名组成。我想要的是用户名都以相同的缩进开头。
前(我目前拥有的):
$1,000 UserA
$100 UserB
$10 UserC
我想要什么:
$1,000 UserA
$100 UserB
$10 UserC
甚至更好:
$1,000 UserA
$100 UserB
$10 UserC
我认为第三个列表是最易读的。
有没有一种简单的方法可以做到这一点,而无需编写检查最大长度的函数,然后手动格式化它或“作弊”来完成此操作?
编辑:我如何生成 ViewModel 项目(我传递给我的网页)
public ActionResult SearchCollections()
{
SearchCollectionGridViewModel scgvm = new SearchCollectionGridViewModel();
var UserNamesWithValues = (from ud in db.userdetails //build the dataset to pass to the View
join usr in db.my_aspnet_users on ud.IdUsers equals usr.id
select new {
UserName = usr.name,
TradeCollectionValue = ud.TradeCollectionValue,
NumberOfTrades = ud.NumberOfTrades,
DollarValueTraded = ud.TradeValue
}).ToList();
scgvm.TradeCollectionValues = (from c in UserNamesWithValues
where c.TradeCollectionValue > 0
orderby c.TradeCollectionValue descending
select new SelectListItem
{
Text = String.Format("{0,5} {1}", c.TradeCollectionValue, c.UserName).Replace(" ", "\xA0"),
Value = c.UserName
}).ToList();
return View(scgvm);
}
编辑#2:找到答案/想通了
我使用下面的答案加上以下两个链接在选择框中生成了一个准确的字符串:(等宽字体也是一个键)