使用二维数组创建表

时间:2012-05-24 08:56:12

标签: c# asp.net-mvc-3 collections multidimensional-array viewmodel

如何使用二维数组填充表格列表集合中的项目(项目:年份)?列表集合由使用linq查询的外部数据库填充。

视图模型

public class TableViewModel
{       
    public List<MovieViewModel> Movies { get; set; }        
    public MyViewModel[,] MovieValues { get; set; }   
}

public class MyViewModel
{
    public string MovieValue { get; set; }        
}

 public class MovieViewModel 
{
    public string Id { get; set; }        
    public string Name { get; set; }
    public string Year { get; set; }   
}

控制器

TableViewModel item;
item=new TableViewModel();  
var AllMuvees = from d in db.MoviesTable     
          orderby d.Id                                            
          group d by d.Rating into  M                          
          select M;

List<MovieViewModel> OldMovies;
foreach (var a in M.AllMuvees)
{
 OldMovies.Add(new MovieViewModel()
 { 
    Id = g.MovieId.ToString(),
    Name =g.MovieName,
    Year = g.MovieYear.ToString()
 });
}


for (int i = 0; i < 10; i++)
 {
 for (int j = 0; j < 10; j++)
  {
    item.MovieValues[i, j] = new MyViewModel()
    { MovieValues = ***** 
(I need help here: I want to fill this with the Years from OldMovies)};      
   }
  }

 return View(item);

2 个答案:

答案 0 :(得分:0)

10x10 i,j的目的是什么?

您可以通过list [index]获取OldMovies中的每个MovieViewModel,并且该索引必须介于0到OldMovies.Count之间。

for(int i = 0; i < OldMovies.Count; i++)
{
  var movie = OldMovies[i];
  //movie.Name
  //movie.Year
}

答案 1 :(得分:0)

您是否尝试过查看ListViewItem然后填充列表视图?

如果没有,那么你可以轻松地使用数组列表,甚至可以在像波纹管这样的foreach循环中填充它?

foreach( var v in Muvees )
{ListViewItem movieToAdd = new ListViewItem();
 movieToAdd.Text = v.movieid; 
movieToAdd.SubItems.Add(v.rating); 
movieToAdd.SubItems.Add(v.movieName); 
listOfMovies.Items.Add( movieToAdd ).BackColor = Color.Green;}    //add colour just because you can

安排subItems然而你的列表已经列出

然后在表单中右键单击表单中的列表视图(listOfMovies)并添加列

很抱歉,如果我误解了这个问题,但我认为这就是你所需要的?