mvc5 +ef 用百度echar实现图表教程1
呵,这个比较麻烦,网上教程很少,主要都说是后台生成Json,前台用AJAX获取数据。
即然搜不到完整的MVC5+ECHAR,那我就自己摸索吧。
.先如何实现MVC5+EF,实现Json数据。
1.先写二个表吧。用于实现图标等。
第一表是类型表,你可以取名,第一季度,第二季,来对比,很多角色的完成情况,
比如,人员1,任务? 完成?
人员2,任务?完成?
也可以取为:2017年销售排名,
人员1:任务,完成
人员2,任务,完成,
有一个类型表,可以无限的拓展吧,我感觉。
第二个表就是角色,然后不停的是标杆,完成,标杆,完成。
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
namespace jsdhh2.Models
{
public class EcharColumn
{
public string Id { get; set; }
[Display(Name = "栏目名称")]
public string EcharColumnName { get; set; }
public string bei { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
namespace jsdhh2.Models
{
public class Echarone
{
[Display(Name = "图标ID")]
public int Id { get; set; }
[Display(Name = "栏目Id")]
public string EcharColmnId { get; set; }
[Display(Name = "对象名称")]
public string ObjNmae { get; set; }
[Display(Name = "任务1")]
public string TaskOne { get; set; }
[Display(Name = "完成1")]
public double TaskDondeOne { get; set; }
[Display(Name = "任务2")]
public string TaskTwo {get; set; }
public double TaskDondeTwo {get; set; }
[Display(Name = "任务3")]
public string TaskThree { get; set; }
public double TaskDondeThree { get; set; }
[Display(Name = "任务4")]
public string TaskFour{ get; set; }
public double TaskDondeFour { get; set; }
[Display(Name = "任务5")]
public string TaskFive { get; set; }
public double TaskDondeFive { get; set; }
}
}
2.然后更改上下文DAL 下面OaDALContent
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;
using jsdhh2.Models;
namespace jsdhh2.DAL
{
public class OaDALContent : DbContext
{
public OaDALContent() : base("MyOaContent") { }
public DbSet<Menu> Menus { get; set; }
public DbSet<MenuRole> MenuRoles { get; set; }
public DbSet<CmsColumn> CmsColumns { get; set; }
public DbSet<ClubContent> ClubContents { get; set; }
public DbSet<CmsContent> CmsContents { get; set; }
public DbSet<ListCMSUser> ListCMSUsers { get; set; }
public DbSet<InfoManageUser> InfoManageUsers{ get; set; }
public DbSet<Email> Emails { get; set; }
public DbSet<Department> Departments { get; set; }
public DbSet<EcharColumn> EcharColumns { get; set; }
public DbSet<Echarone> Echarones { get; set; }
}
}
3.然后code first
生成方案
Enable-Migrations
Enable-Migrations -ContextTypeName jsdhh2.DAL.OaDALContent
update-database
搞定

看见二个code first了,真爽。下一步就将开始。
4.用基本生成控制器EcharColumn,并新增加几个栏目。

5.关于总表中的数据,我不准备用后台一个一个加了,这个不现实,也不方便,后期我想用导入导出的方式。
所以用MSSQL企业管理器,进入数据的录入。
但EcharColumnID的字段,得复制栏目表了。我刚才新建的ID为20170606125925当月营销

注意看,我二个ID哟,就是二个栏目,名字用张三2来区分。
6.新建一个带基架 的控制器Echar,虽然不使用,可他大部份生成了,我改起方便呀。

11.我们先进行简单的布局。
在改后台index方法,左边读出所有的栏目,便于点击时,右边出相应的图表。
然后先以读出数据为主测试
// GET: Echarones
public async Task<ActionResult> Index()
{ ///读出所有的栏目,便于在前台读出来写在li中。要是没有栏目肯定报错在前台
ViewBag.drolistmenu = db.EcharColumns;
///初始化分页
//赋值回传
return View(await db.Echarones.ToListAsync());
}
前台
@model IEnumerable<jsdhh2.Models.Echarone>
@{
ViewBag.Title = "Index";
}
<div class="dhhheight1 col-md-12 col-xs-12"></div>
<!--start 左 -->
<div class="col-md-3">
@using (Html.BeginForm("indexList", "CmsContents", new { @class = "form-inline" }, FormMethod.Post))
{ <div class="dhhheight1 col-md-12 col-xs-12">.</div>
<div class="form-inline dhhbootom">
<div class="form-group">
<div class="input-group col-md-12">
@Html.TextBox("SearchString", "", new { @class = "form-control", @Style = "display:inline" })
<span class="input-group-btn ">
<input id="btnSearch" class="btn btn btn-primary" type="submit" value="搜索">
</span>
</div>
</div>
</div>
}
.
<div class="box box-solid">
<div class="box-header with-border">
<h3 class="box-title">文章中心</h3>
<div class="box-tools">
<button type="button" class="btn btn-box-tool" data-widget="collapse">
<i class="fa fa-minus"></i>
</button>
</div>
</div>
<div class="box-body no-padding" style="display: block;">
<ul class="nav nav-pills nav-stacked">
@foreach (jsdhh2.Models.EcharColumn data1 in (ViewBag.drolistmenu as IEnumerable<jsdhh2.Models.EcharColumn>
))
{
<li> <a href="~/Echarones/Index?SeachColumnString=@data1.Id"><i class="fa fa-circle-o"></i> @data1.EcharColumnName</a></li>
}
</ul>
</div>
<!-- /.box-body -->
</div>
</div>
<!--start 右 -->
<div class="col-md-9 col-xs-12 pull-right">
<!-- Content Header (Page header) -->
<section class="content-header">
<h1>
文章列表
<small>文章千万篇,我只取三千~</small>
</h1>
<ol class="breadcrumb">
<li><a href="#"><i class="fa fa-dashboard"></i> Level</a></li>
<li class="active">Here</li>
</ol>
</section>
<!--end Content Header (Page header) -->
<!-- Main content -->
<section class="content">
<h2>Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.EcharColmnId)
</th>
<th>
@Html.DisplayNameFor(model => model.ObjNmae)
</th>
<th>
@Html.DisplayNameFor(model => model.TaskOne)
</th>
<th>
@Html.DisplayNameFor(model => model.TaskDondeOne)
</th>
<th>
@Html.DisplayNameFor(model => model.TaskTwo)
</th>
<th>
@Html.DisplayNameFor(model => model.TaskDondeTwo)
</th>
<th>
@Html.DisplayNameFor(model => model.TaskThree)
</th>
<th>
@Html.DisplayNameFor(model => model.TaskDondeThree)
</th>
<th>
@Html.DisplayNameFor(model => model.TaskFour)
</th>
<th>
@Html.DisplayNameFor(model => model.TaskDondeFour)
</th>
<th>
@Html.DisplayNameFor(model => model.TaskFive)
</th>
<th>
@Html.DisplayNameFor(model => model.TaskDondeFive)
</th>
<th></th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.EcharColmnId)
</td>
<td>
@Html.DisplayFor(modelItem => item.ObjNmae)
</td>
<td>
@Html.DisplayFor(modelItem => item.TaskOne)
</td>
<td>
@Html.DisplayFor(modelItem => item.TaskDondeOne)
</td>
<td>
@Html.DisplayFor(modelItem => item.TaskTwo)
</td>
<td>
@Html.DisplayFor(modelItem => item.TaskDondeTwo)
</td>
<td>
@Html.DisplayFor(modelItem => item.TaskThree)
</td>
<td>
@Html.DisplayFor(modelItem => item.TaskDondeThree)
</td>
<td>
@Html.DisplayFor(modelItem => item.TaskFour)
</td>
<td>
@Html.DisplayFor(modelItem => item.TaskDondeFour)
</td>
<td>
@Html.DisplayFor(modelItem => item.TaskFive)
</td>
<td>
@Html.DisplayFor(modelItem => item.TaskDondeFive)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id = item.Id }) |
@Html.ActionLink("Details", "Details", new { id = item.Id }) |
@Html.ActionLink("Delete", "Delete", new { id = item.Id })
</td>
</tr>
}
</table>
</section>
</div>
12,效果

浙公网安备 33010602011771号