1

我正在构建一个值以显示在下拉选择框中。该值由货币值和用户名组成。我想要的是用户名都以相同的缩进开头。

前(我目前拥有的):

$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:找到答案/想通了

我使用下面的答案加上以下两个链接在选择框中生成了一个准确的字符串:(等宽字体也是一个键)

答案 1

答案 2

4

2 回答 2

1
String.Format("{0,5} {1}", money, username)

或者,HTML 编码,

Replace(String.Format("{0,5} {1}", money, username), " ", " ")

所以在 MVC4 中它看起来“有点像”:

@Html.Raw(
    Replace(
        String.Format(
            "{0,5} {1}",
            money,
            HttpServerUtility.HtmlEncode(username)
        ),
        " ",
        " "
    )
)

(确保将字体设置为等宽字体)

于 2013-09-14T00:45:23.570 回答
0

你为什么不使用标签\t

于 2013-09-14T00:43:10.130 回答