2014-01-15 51 views
0

我试图将图表与DataSource绑定到控制器,但它不出现在视图中。绑定到DataSource Kendo UI图表MVC3 Razor

这里是我的控制器

public List<HorasTrabajadasTecnicosViewModel> GetServiciosByFecha(string txtFechaInicio, string txtFechaFin) 
    { 
     DateTime FECHA_INICIO; 
     DateTime FECHA_FIN = DateTime.Now; ; 

     if (String.IsNullOrEmpty(txtFechaInicio)) FECHA_INICIO = _FechaSistema.GetFechaSistema(); 
     else FECHA_INICIO = Convert.ToDateTime(txtFechaInicio); 
     if (String.IsNullOrEmpty(txtFechaFin)) FECHA_FIN = _FechaSistema.GetFechaSistema(); 
     else FECHA_FIN = Convert.ToDateTime(txtFechaFin).AddDays(1); 

     var Servicios = from ser in linq.ViewHorasTrabajadasTecnicosConProyecto 
         where ser.FECHA_INICIO >= FECHA_INICIO 
         && ser.FECHA_FIN <= FECHA_FIN 
         select new HorasTrabajadasTecnicosViewModel 
         { 
          EMPRESA = ser.EMPRESA, 
          TIPO_SERVICIO = ser.TIPO_SERVICIO, 
          TOTAL_HORAS = ser.TOTAL_HORAS.Value 
         }; 

     return Servicios.OrderBy(m => m.EMPRESA).ToList(); 
    } 

    public ActionResult GraficoServicio(string txtFechaInicio, string txtFechaFin) 
    { 
     if (!Convert.ToBoolean(Session["superusuario"])) 
     { 
      if (!_sesion.VerifarSesion(Convert.ToInt16(Session["id_usuario"]))) { Session["aux"] = 0; Session["Usuario"] = null; Session["id_usuario"] = null; Session["superusuario"] = false; Session["id_empresaUsuario"] = null; Session["Rol"] = null; return View("SesionExpiradaConsultas"); } 

      if (!_sesion.VerificarAccionAcceso(Convert.ToInt16(Session["id_usuario"]), "Consultas", "VER", "ControlInterno")) 
       return View("AccesoDenegadoConsultas"); 
     } 

     if (string.IsNullOrEmpty(txtFechaInicio)) txtFechaInicio = ""; 
     if (string.IsNullOrEmpty(txtFechaFin)) txtFechaFin = ""; 

     return View(); 
    } 

    public ActionResult LeerExt_GraficoServicio([DataSourceRequest] DataSourceRequest request, string txtFechaInicio, string txtFechaFin) 
    { 
     return Json(GetServiciosByFecha(txtFechaInicio, txtFechaFin).ToDataSourceResult(request)); 
    }` 

这是我的看法

@(Html.Kendo().Chart(Model) 
.Name("Chart") 
.Title("REPORTE DE SERVICIOS POR EMPRESA") 
.DataSource(datasource => datasource 
    .Read(read => read.Action("LeerExt_GraficoServicio", "Consultas").Data("getParameter")) 
    ) 
    .Series(series => { 
     series.Column(model => model.TIPO_SERVICIO) 
      .Name("TipoServicio"); 
    }) 
    .Legend(legend => legend 
     .Position(ChartLegendPosition.Bottom) 
    ) 
    .ValueAxis(axis => axis.Numeric() 
     .Labels(labels => labels 
      .Format("{0}") 
      .Skip(2) 
      .Step(2) 
     ) 
    ) 
    .CategoryAxis(axis => axis 
     .Categories(model => model.EMPRESA) 
    ) 
    .Tooltip(tooltip => tooltip 
     .Visible(true) 
     .Format("{0}") 
     .Template("#= series.name #: #= value #") 
    ) 
    ) 

回答

0

当您使用.ToDataSourceResult(request)方法在你的行动LeerExt_GraficoServicio在结果JSON去Data字段中的数据和图表无法找到必填字段。尝试将其删除喜欢:

public ActionResult LeerExt_GraficoServicio(string txtFechaInicio, string txtFechaFin) 
{ 
    return Json(GetServiciosByFecha(txtFechaInicio, txtFechaFin)); 
} 
远程数据图表的

剑道例子是在这里: http://demos.kendoui.com/dataviz/line-charts/remote-data.html

+0

谢谢!这对我非常有帮助 – Alex