2014-10-18 56 views
0

我有城市名称和车牌。车牌从1到100如何从DB设置SelectList值

我想表明从像32,54,88,1,2,3,4,5车牌城市开始...... 100

车牌32,54, 88个城市是我国最挑剔的城市,所以我想首先展示他们。

我的数据库模式是这样的:

  • LicencePlateId = 32,CITYNAME = “City1”
  • LicencePlateId = 54,CITYNAME = “城2”
  • LicencePlateId = 88,CITYNAME = “请分享帮助”
  • LicencePlateId = 1,CITYNAME = “....”
  • LicencePlateId = 2,CITYNAME = “....”
  • LicencePlateId = 3,CITYNAME = “....”
  • LicencePlateId = 4,CITYNAME = “....”

我得到的所有城市从数据库中使用此代码。我没有问题

List<CityVM> myCity= new List<CityVM>(); 
    myCity= CityBL.GetAllCities(); 

比我添加城市到的SelectList

List<SelectListItem> cityList= new List<SelectListItem>(); 
    { 
     for (var i = 1; i < myCity.Count + 1; i++) 
     { 
     cityList.Add(new SelectListItem { Text = myCity.FirstOrDefault(k => k.Id == i).Ad.ToString(), Value = i.ToString() }); 
     } 

     cityList.Add(new SelectListItem { Text = "All Cities ", Value = "100" }); 
    } 

但是当我看查看部分下拉菜单来了这样的:

  • LicencePlate = 1,CITYNAME =“.....”
  • LicencePlate = 2,CityName =“.....”
  • LicencePlate = 3,CityName =“。 ....“

我如何从LicencePlateId = 32开始?

+1

什么财产在你的数据库/数据模型显示它们的使用频率? – 2014-10-18 10:58:08

+0

CityId =牌照我的意思是。我会改变代码。谢谢。 – ispanak 2014-10-18 11:00:03

+1

如果您想按_most首先使用3个城市进行排序,则必须有一个属性,指示使用频率 – 2014-10-18 11:06:15

回答

1

尝试的项目使用forforeach他们位于List<CityVM>无论是为了增加List<SelectListItem>

for (int i = 0; i < myCity.Count - 1; i++) 
{ 
    cityList.Add(new SelectListItem 
       { 
        Text = myCity[i].Ad.ToString(), 
        Value = myCity[i].Id.ToString() 
       }); 
} 

cityList.Add(new SelectListItem { Text = "All Cities ", Value = "100" }); 
+0

非常感谢。我没有看到Value = myCity [i] .Id.ToString()部分。 – ispanak 2014-10-20 06:39:35