【问题标题】:DataSourceRequest adding attributes to a grid view kendoDataSourceRequest 将属性添加到网格视图剑道
【发布时间】:2016-04-19 16:33:01
【问题描述】:

您好,我正在使用 asp.net mvc 4 开发应用程序,并且我正在使用 kendo 添加 DataGridView ! 我有一些麻烦:

我想在 datagridview 的列中添加两个属性

我有一个模型“用户”和一个模型“项目” 当用户创建新项目时,我必须将他的姓名和姓氏添加到 datagridview 这是我的界面:

[

这是我的控制器:

 public ActionResult Projet_Read([DataSourceRequest]DataSourceRequest request)
        {
            var projets = (from a in db.Projets
                          join b in db.Utilisateurs on a.UtilisateurID equals b.UtilisateurID
                          select new 
                          { 
                              ProjetId=a.ProjetId,
                              nomP=a.nomP,
                              DateDebut=a.DateDebut,
                              DateFinPrevue=a.DateFinPrevue,
                              DateFinReele=a.DateFinReele,
                              etat=a.etat,
                              Description=a.Description,
                              U=b.Prenom // U=b.Prenom +" "+b.Nom
                          });
            DataSourceResult result = projets.ToDataSourceResult(request, projet1 => new
            {
                ProjetId = projet1.ProjetId,
                nomP = projet1.nomP,
                DateDebut = projet1.DateDebut,
                DateFinPrevue = projet1.DateFinPrevue,
                DateFinReele = projet1.DateFinReele,
                Description = projet1.Description,
                etat = projet1.etat,
                U=projet1.U
            });
             return Json(result);
        }

这是我的看法:

<legend class="legend">Tous Les Projets</legend>
@{
    Layout = "~/Views/Shared/admin.cshtml";
}
<link href="~/Content/Gridmvc.css" rel="stylesheet" />
<script src="~/Scripts/gridmvc.js"></script>
<script src="~/Scripts/gridmvc.min.js"></script>
<div class="container-fluid placeholders">
    <div style="height:850px">
        @(Html.Kendo().Grid<mvc_depences.Models.Projet>()
        .Name("grid")
        .Columns(columns =>
        {
            columns.Bound(c => c.U).Title("Chef de Projet").Width(145);
            columns.Bound(c => c.nomP).Title("Nom Projet");
            columns.Bound(c => c.DateDebut).Title("Date Debut");
            columns.Bound(c => c.DateFinPrevue).Title("Date Fin Prevue");
            columns.Bound(c => c.DateFinReele).Title("Date Fin Réelle");
            columns.Bound(c => c.etat).Title("Etat");
            columns.Bound(c => c.Description).Title("Description");
            columns.Command(command => { command.Edit().Text("Modifier"); }).Width(150);   
        })
      .Editable(editable => editable.Mode(GridEditMode.PopUp))
      .Pageable()
      .Selectable(selectable =>
      {
          selectable.Mode(GridSelectionMode.Single);
          selectable.Type(GridSelectionType.Row);
      })
      .Filterable()
      .Scrollable()
      .DataSource(dataSource => dataSource
          .Ajax()
          .Model(model => model.Id(p => p.ProjetId))
          .Read(read => read.Action("Projet_Read", "Projet"))
          .Update(update => update.Action("Projet_Update", "Projet"))
      )
        )
    </div>
</div>

【问题讨论】:

  • 那么什么不起作用?
  • 我想显示他的姓氏,而不是只显示用户名:我现在的代码:U=b.Prenom 这就是我尝试过的 U=b.Prenom +" "+b.Nom -- > 我想做一个 concat 并将其添加到网格视图中!有可能吗?
  • 不!它不起作用

标签: javascript c# json asp.net-mvc datagridview


【解决方案1】:

好吧,我没有使用 Kendo UI 的经验。我的猜测是您尝试在 SQL 查询中连接字符串。您可以尝试首先获取所有数据(包括名字和姓氏)并将它们映射到您的视图中。

控制器:

public ActionResult Projet_Read([DataSourceRequest]DataSourceRequest request)
        {
            var projets = (from a in db.Projets
                          join b in db.Utilisateurs on a.UtilisateurID equals b.UtilisateurID
                          select new 
                          { 
                              ProjetId = a.ProjetId,
                              nomP = a.nomP,
                              DateDebut = a.DateDebut,
                              DateFinPrevue = a.DateFinPrevue,
                              DateFinReele = a.DateFinReele,
                              etat = a.etat,
                              Description = a.Description,
                              Prenom = b.Prenom,
                              Nom = b.Nom
                          });
            DataSourceResult result = projets.ToDataSourceResult(request, projet1 => new
            {
                ProjetId = projet1.ProjetId,
                nomP = projet1.nomP,
                DateDebut = projet1.DateDebut,
                DateFinPrevue = projet1.DateFinPrevue,
                DateFinReele = projet1.DateFinReele,
                Description = projet1.Description,
                etat = projet1.etat,
                Prenom = projet1.Prenom,
                Nom = projet1.Nom
            });
             return Json(result);
        }

在视图中:

<legend class="legend">Tous Les Projets</legend>
@{
    Layout = "~/Views/Shared/admin.cshtml";
}
<link href="~/Content/Gridmvc.css" rel="stylesheet" />
<script src="~/Scripts/gridmvc.js"></script>
<script src="~/Scripts/gridmvc.min.js"></script>
<div class="container-fluid placeholders">
    <div style="height:850px">
        @(Html.Kendo().Grid<mvc_depences.Models.Projet>()
        .Name("grid")
        .Columns(columns =>
        {
            columns.Bound(c => String.Format("{0} {1}", c.Prenom, c.Nom)).Title("Chef de Projet").Width(145);
            columns.Bound(c => c.nomP).Title("Nom Projet");
            columns.Bound(c => c.DateDebut).Title("Date Debut");
            columns.Bound(c => c.DateFinPrevue).Title("Date Fin Prevue");
            columns.Bound(c => c.DateFinReele).Title("Date Fin Réelle");
            columns.Bound(c => c.etat).Title("Etat");
            columns.Bound(c => c.Description).Title("Description");
            columns.Command(command => { command.Edit().Text("Modifier"); }).Width(150);   
        })
      .Editable(editable => editable.Mode(GridEditMode.PopUp))
      .Pageable()
      .Selectable(selectable =>
      {
          selectable.Mode(GridSelectionMode.Single);
          selectable.Type(GridSelectionType.Row);
      })
      .Filterable()
      .Scrollable()
      .DataSource(dataSource => dataSource
          .Ajax()
          .Model(model => model.Id(p => p.ProjetId))
          .Read(read => read.Action("Projet_Read", "Projet"))
          .Update(update => update.Action("Projet_Update", "Projet"))
      )
        )
    </div>
</div>

这应该可以解决问题

【讨论】:

  • 当我将 Prenom = projet1.Prenom, Nom = projet1.Nom 放入 sql 请求中时,我没有显示任何错误,但是当我尝试将其放入 DataSourceResult 结果中时,它会将其标记为红色这是消息:“错误2'AnonymousType#1'不包含'Prenom'的定义,并且找不到接受'AnonymousType#1'类型的第一个参数的扩展方法'Prenom'(您是否缺少使用指令或程序集参考?) C:\Users\NAD-info\Documents\Visual Studio 2013\Projects\mvc_depences\mvc_depences\mvc_depences\Controllers\ProjetController.cs 102 34 mvc_depences "
  • @kokomoi 太好了。但是我的回答有帮助吗?
【解决方案2】:

我只是在 sql 请求中进行了连接,而其他代码保持不变!

public ActionResult Projet_Read([DataSourceRequest]DataSourceRequest request)
        {
            var projets = (from a in db.Projets
                          join b in db.Utilisateurs on a.UtilisateurID equals b.UtilisateurID
                          select new 
                          { 
                              ProjetId=a.ProjetId,
                              nomP=a.nomP,
                              DateDebut=a.DateDebut,
                              DateFinPrevue=a.DateFinPrevue,
                              DateFinReele=a.DateFinReele,
                              etat=a.etat,
                              Description=a.Description,
                              U=b.Prenom +" "+ b.nom
                          });
            DataSourceResult result = projets.ToDataSourceResult(request, projet1 => new
            {
                ProjetId = projet1.ProjetId,
                nomP = projet1.nomP,
                DateDebut = projet1.DateDebut,
                DateFinPrevue = projet1.DateFinPrevue,
                DateFinReele = projet1.DateFinReele,
                Description = projet1.Description,
                etat = projet1.etat,
                U=projet1.U,
            });
             return Json(result);
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-27
    • 2023-03-10
    • 1970-01-01
    相关资源
    最近更新 更多