冯 海

一个程序新人菜鸟的日记,希望大家多多关照。QQ:32316131

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,效果

 

posted @ 2017-06-05 23:09  秋天来了哟  阅读(393)  评论(0编辑  收藏  举报
认识就是缘份,愿天下人都快乐!
QQ: 32316131
Email: 32316131@qq.com