2012-04-28 7 views
0

は、どのように私はテーブルのように見える形式で、次のデータベース・エンティティからのデータを表示していました:Linqリクエストから集められたエンティティを使用してデータを表形式でソートして表示するにはどうすればよいですか?

public class Attendance 
{ 
    public int AttendanceID { get; set; } 
    public int CourseID { get; set; } 
    public int StudentID { get; set; } 
    public int AttendanceDay { get; set; } 
    public bool Present { get; set; } 
    public virtual Course Course { get; set; } 
    public virtual Student Student { get; set; } 
} 

は私がCourseID == Xを持っていた出席デシベルエントリ内のすべての行を検索したいと思います。その後、私は理にかなっている方法でそれを表示するには、私の見解では、この情報をソートできるようにする必要があります

AttendanceData = Attendance.Where(s => s.CourseID == x); // I think 

:だから私のようなものを使用します。私は、すべての現在/未存在の値が左側にStudentIDs、上部にAttendanceDaysが列挙されたテーブルでソートされた画面上のデータを持っていたいと思います。

この情報を並べ替えて表示するにはどうすればよいですか?

UPDATE:(MVCのWebGridと一緒に)次のコードを使用して

- 私は私のビューに表示されるように、ある種のグリッドを得ることができます。

コントローラー:

IEnumerable<Attendance> model = db.Attendance.Where(s => s.CourseID == 4); 
return View(model); 

ビュー:

@model IEnumerable<MyProject.Models.Attendance> 

<div> 
@{ 
    var grid = new WebGrid(Model, defaultSort: "Name"); 
} 

    @grid.GetHtml() 

</div> 

しかし、グリッドが私のニーズのために有用である方法で編成されていません。

表示された表の一番上に、次のように表示します。

1日| 2日目| 3日目| 「出席者の日」(学生がサインアップするコースの作成時に指定される)の最大値まで等。

私は読むために表示された表の左側をしたい: 学生ID 1 学生ID 5 学生ID 6 学生証など。 。データセット内のすべての生徒が表示されるまで

は私が私のコントローラにこの線に沿って何かを使用する必要があると思う:

var model = from s in db.Attendance 
         where s.CourseID == 4 
         group s.AttendanceDay by s.StudentID into t 
         select new 
         { 
          StudentID = t.Key, 
          Days = t.OrderBy(x => x) 
         }; 
return View(model); 

しかし、私はのIEnumerable <が必要> MVCのWebGridを使用して、私のビューに戻って - 私はまだ、どこかに取得しています道に沿って少し失われた。正しい方向に微調整できますか?

+0

私は、私が行った進歩を含む上記の投稿を更新しました。 – Ecnalyr

答えて

1

非常に典型的な要件については、ASP.NET WebGridの候補として適しているようです。柔軟性があり、ページング、並べ替え、書式設定などが可能です。私はこれをいくつかのプロジェクトで使いましたが、ASP.NET MVCでおそらく慣れ親しんだ他のHTMLヘルパーと同じように動作します。

Here's a good starting place.

+0

これは間違いなく私を始めました - 少なくともテーブルの代わりに不適切な形式の出席テーブルを持っています。今私はこれをたくさん微調整する方法を学ぶ必要があります。心から感謝します。 – Ecnalyr