データベースから各ユーザーの合計リーフをカウントしたいと考えています。Asp.Net MVC-3 (Aspx) のテレリック グリッドビューに表示したいと考えています。
私は2列のグリッドビューを持っています。最初の列にはすべての従業員/ユーザーの名前が表示され、2 番目の列にはそのユーザーの合計休暇が表示されます。
私のデータベースは以下の通りです
leave_master
leave_id (主キー) user_id (テーブル user_master の user_id を持つ外部キー) leave_days
ユーザーマスター
user_id (主キー) user_real_name
私のモデルファイルは以下の通りです
名前 - LeaveGridview.cs
<pre>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;
namespace ProjectManagementSystem.Models
{
public class LeaveGridview
{
public int user_id { get; set; }
public string user_name { get; set; }
public string user_real_name { get; set; }
public int leave_id { get; set; }
public decimal leave_days { get; set; }
}
}
</pre>
2番目のファイル
名前 - LeaveGridviewFetch.cs
<pre>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace ProjectManagementSystem.Models
{
public class LeaveGridviewFetch
{
public static IList<LeaveGridview> all()
{
IList<LeaveGridview> result =
(IList<LeaveGridview>)HttpContext.Current.Session["leave1"];
if (result == null)
{
HttpContext.Current.Session["leave1"] = result =
(from l in new ProjectManagementSystemEntities3().leave_master
select new LeaveGridview
{
user_id = l.user_id,
leave_id = l.leave_id,
user_real_name = l.user_master.user_real_name,
}).ToList();
}
return result;
}
}
}
</pre>
私のコントローラファイル名LeaveController.cs
<pre>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using ProjectManagementSystem.Models;
using Telerik.Web.Mvc;
namespace LeaveModule.Controllers
{
public class LeaveController : Controller
{
public ProjectManagementSystemEntities3 pb = new ProjectManagementSystemEntities3();
public ActionResult LeaveShow()
{
var leave_master = pb.leave_master.Include("user_master");
ViewBag.leave_id = new SelectList(pb.user_master, "user_id", "user_real_name");
return View(leave_master.ToList());
}
[GridAction]
public ActionResult _SelectBatchEditing()
{
return View(new GridModel(LeaveGridviewFetch.all()));
}
}
}
</pre>
私の見解は
名前LeaveShow.ascx
<pre>
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
LeaveShow
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<% Html.Telerik().Grid<ProjectManagementSystem.Models.LeaveGridview>()
.Name("grid")
.DataKeys(keys =>
{
keys.Add(l => l.leave_id);
})
.DataBinding(dataBinding =>
dataBinding.Ajax()
.Select("_SelectBatchEditing", "Leave") // Leave is controller name
)
.Columns(columns =>
{
columns.Bound(l => l.user_real_name).Width(200);
columns.Bound(l => l.leave_days).Width(150);
})
.Groupable()
.Pageable()
.Filterable()
.Render();
%>
</asp:Content>
</pre>
のように出力したい
名前---------------total_葉
abc-------------------------------- 10
xyz---------------- 12
pqr---------------- 06
では、どうすればそれを行うことができますか?
前もって感謝します...