300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(8)之文章管理

ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(8)之文章管理

时间:2023-07-03 08:04:28

相关推荐

ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(8)之文章管理

到这一步,我们整个项目的核心搭建已经算是完成了,接下来就是我们业务功能的实际应用,也就是表现层的设计和实现,如果你是一个项目负责人,到这一步,接下来的工作就可以交给下面的兄弟去完成了,在这里我们用文章管理来详细的讲解一下应用层的搭建、以及数据的加载和分页等。

一、创建控制器和视图

我们在区域BackstageModule下的Controllers文件夹中创建一个名叫ArticleMangeController的控制器,然后通过控制器添视图(Index.cshtml,Form.cshtml),并让其继承PublicController公共控制器,然后我们在ArticleMangeController控制器中创建视图中所需要的方法(数据查询、添加修改、删除),以及业务层(Com_ArticleBll.cs)的业务方法(为了规范,我们尽量把方法写在对应的业务中)。

(1)ArticleMangeController文章控制器

using Bobo.Utilities;using IA.Business;using IA.Entity;using System;using System.Collections.Generic;using System.Data;using System.IO;using System.Linq;using System.Web;using System.Web.Mvc;namespace IA.WebApp.Areas.BackstageModule.Controllers{/// <summary>/// 文章管理控制器/// </summary>public class ArticleMangeController : PublicController<Com_Article>{//// GET: /BackstageModule/ArticleMange//// <summary>/// 获取分页数据/// </summary>/// <param name="ArticleTitle"></param>/// <param name="jgp"></param>/// <returns></returns>public ActionResult GetTable(string ArticleTitle, string ArticleType, JqGridParam jgp){ArticleTitle = ArticleTitle.Replace("&nbsp;", "");ArticleType = ArticleType.Replace("&nbsp;", "");Com_ArticleBll bll = new Com_ArticleBll();DataTable model = bll.GetTablePage(ArticleTitle, ArticleType, ref jgp);//构建分页数据var JsonData = new{success = true,pageData = jgp,message = "",data = model};return Content(JsonData.ToJson());}/// <summary>/// 提交表单/// </summary>/// <param name="entity"></param>/// <param name="KeyValue"></param>/// <returns></returns>[HttpPost][ValidateInput(false)]public ActionResult SubmitFormData(Com_Article entity, string KeyValue){HttpPostedFileBase PicFile = Request.Files["PicUrl"];Com_ArticleBll bll = new Com_ArticleBll();try{int IsOk = 0;string Message = KeyValue == "" ? "新增成功。" : "编辑成功。";#region 题图处理bool PicHasFile = PicFile != null && PicFile.ContentLength > 0;List<string> fileType = ConfigHelper.GetSystemConfig("SystemConfig", "fileUploadPath", "ImageType").ToLower().Split('|').ToList();string PicName = "";if (PicHasFile){PicName = Path.GetFileName(PicFile.FileName);}if (PicHasFile && !fileType.Contains(Path.GetExtension(PicName).ToLower())){return Content(new JsonMessage { Code = "-1", Success = false, Message = "题图只能上传" + ConfigHelper.GetSystemConfig("SystemConfig", "fileUploadPath", "ImageType").ToLower() + "类型的文件!" }.ToString());}if (PicHasFile && CommonHelper.GetInt(SizeHelper.CountSizeNum(PicFile.ContentLength)) > CommonHelper.GetInt(ConfigHelper.GetSystemConfig("SystemConfig", "fileUploadPath", "ImageSize"))){return Content(new JsonMessage { Code = "-1", Success = false, Message = "文件大小不能超过" + ConfigHelper.GetSystemConfig("SystemConfig", "fileUploadPath", "ImageSize") + "M!" }.ToString());}string PicPath = "/Resource/Article/TitleImage/";string FilePath = DirFileHelper.WebPathTran(PicPath);DirFileHelper.CreateDirectory(FilePath);if (PicFile != null && PicFile.ContentLength > 0){string NewFileName = CommonHelper.GetGuidNotLine() + PicName;PicFile.SaveAs(FilePath + NewFileName);entity.PicUrl = PicPath + NewFileName;}#endregionif (!string.IsNullOrEmpty(KeyValue)){Com_Article Oldentity = bll.Factory.FindEntity(KeyValue);//获取没更新之前实体对象entity.Modify(KeyValue);IsOk = bll.Factory.Update(entity);this.WriteLog(IsOk, entity, Oldentity, KeyValue, Message);}else{entity.Create(false);//登录功能做好改为trueIsOk = bll.Factory.Insert(entity);this.WriteLog(IsOk, entity, null, KeyValue, Message);}return Content(new JsonMessage { Success = true, Code = IsOk.ToString(), Message = Message }.ToString());}catch (Exception ex){this.WriteLog(-1, entity, null, KeyValue, "操作失败:" + ex.Message);return Content(new JsonMessage { Success = false, Code = "-1", Message = "操作失败:" + ex.Message }.ToString());}}/// <summary>/// 假删方法/// </summary>/// <param name="KeyValue"></param>/// <returns></returns>public ActionResult DeleteOther(string KeyValue){Com_ArticleBll bll = new Com_ArticleBll();try{int IsOk = 1;string Message = "删除成功";if (!string.IsNullOrEmpty(KeyValue)){string[] array = KeyValue.Split(',');foreach (var item in array){Com_Article Oldentity = bll.Factory.FindEntity(item);//获取没更新之前实体对象Oldentity.DeleteMark = 1;Oldentity.Modify(item, false);//登录功能做好改为trueIsOk = bll.Factory.Update(Oldentity);this.WriteLog(IsOk, Oldentity, Oldentity, item, Message);}}else{Message = "删除失败";IsOk = 1;}return Content(new JsonMessage { Success = true, Code = IsOk.ToString(), Message = Message }.ToString());}catch (Exception ex){this.WriteLog(-1, null, null, KeyValue, "操作失败:" + ex.Message);return Content(new JsonMessage { Success = false, Code = "-1", Message = "操作失败:" + ex.Message }.ToString());}}/// <summary>/// 文章发布/// </summary>/// <param name="KeyValue"></param>/// <returns></returns>public ActionResult PutArticle(string KeyValue, int State){Com_ArticleBll bll = new Com_ArticleBll();try{int IsOk = 1;string Message = "操作成功";if (!string.IsNullOrEmpty(KeyValue)){string[] array = KeyValue.Split(',');foreach (var item in array){Com_Article Oldentity = bll.Factory.FindEntity(item);//获取没更新之前实体对象Oldentity.PutTime = DateTime.Now;Oldentity.State = State;Oldentity.Modify(item, false);//登录功能做好改为trueIsOk = bll.Factory.Update(Oldentity);this.WriteLog(IsOk, Oldentity, Oldentity, item, Message);}}else{Message = "操作失败";IsOk = 0;}return Content(new JsonMessage { Success = true, Code = IsOk.ToString(), Message = Message }.ToString());}catch (Exception ex){this.WriteLog(-1, null, null, KeyValue, "操作失败:" + ex.Message);return Content(new JsonMessage { Success = false, Code = "-1", Message = "操作失败:" + ex.Message }.ToString());}}}}

(2)Com_ArticleBll.cs 业务方法

using Bobo.DataAccess;using Bobo.Repository;using Bobo.Utilities;using IA.Entity;using System;using System.Collections.Generic;using System.Data;using mon;using System.Linq;using System.Text;using System.Threading.Tasks;namespace IA.Business{// <summary> /// 文章信息表 /// <author> ///<name>YHB</name> ///<date>.10.18</date> /// </author> /// </summary> public class Com_ArticleBll : RepositoryFactory<Com_Article>{/// <summary>/// 获取文章数据/// </summary>/// <param name="ArticleTitle"></param>/// <param name="jgp"></param>/// <returns></returns>public DataTable GetTablePage(string ArticleTitle, string ArticleType, ref JqGridParam jgp){StringBuilder whereSql = new StringBuilder();List<DbParameter> param = new List<DbParameter>();whereSql.Append(@" AND DeleteMark<>1");if (!StringHelper.IsNullOrEmpty(ArticleTitle)){whereSql.Append(@" AND ArticleTitle LIKE @ArticleTitle");param.Add(DbFactory.CreateDbParameter("@ArticleTitle", '%' + ArticleTitle + '%'));}if (!StringHelper.IsNullOrEmpty(ArticleType)){whereSql.Append(@" AND ArticleType=@ArticleType");param.Add(DbFactory.CreateDbParameter("@ArticleType", ArticleType));}return Factory.FindTablePage(whereSql.ToString(), param.ToArray(), ref jgp);}}}

(3)在实现视图之前,我们需要在区域下的Shared中创建一个分部视图_PartialNav.cshtml存放左边菜单

<div class="center-nav L font-yahei"><div class="center-nav-title">功能导航</div><div class="center-nav-item"><a href="/BackstageModule/JournalMange/Index" class="scgl">素材管理</a></div><div class="center-nav-item"><a href="/BackstageModule/PayForMange/Index" class="zfgl">支付管理</a></div><div class="center-nav-item"><a href="/BackstageModule/BannerMange/Index" class="gggl">广告管理</a></div><div class="center-nav-item"><a href="/BackstageModule/ArticleMange/Index" class="hydt">资讯管理</a></div></div>

(4)Index.cshtml视图中的代码:

@{ViewBag.Title = "管理后台 - 资讯";Layout = "~/Views/Shared/_LayoutMange.cshtml";}<style>html {background-color: #f3f4f4;}.w_header .header-nav .nav-item li a.wzgl {border-bottom: 2px solid #2D81E0;background-color: #E8F4FF;color: #2D81E0;font-weight: bold;}</style><div class="w_center clear mAuto">@Html.Partial("_PartialNav")<div class="center-main R"><h2 class="center-main-title font-yahei"><span>资讯管理&nbsp; /</span>&nbsp;&nbsp;<i>management news</i></h2><div class="center-main-box"><div class="toolbarBox clear"><div id="searchForm" class="L searchForm"><span class="seachTit">文章标题:</span><input type="text" id="ArticleTitle" class="seachText" value="" /><input type="text" id="ArticleType" class="seachText" value="" /><a id="searchBtn" class="searchBtn" href="javascript:;" title="搜索"></a></div><div class="toolbar R"><input type="button" value="添加" class="mainBtn addBtn greenBtn" οnclick="showAdd()" /><input type="button" value="发布" class="mainBtn putBtn yellowBtn" οnclick="putBtn(1)" /><input type="button" value="取消发布" class="mainBtn putBtn blueBtn sxLenth" οnclick="putBtn(0)" /><input type="button" value="删除" class="mainBtn delBtn blueBtn" οnclick="delBtn()" /></div></div><table class="dataTable" style="width:100%;"><thead><tr><td style="width:10%;" class="remElem"><input type="checkbox" class="ckbAll " />选定</td><td style="width:40%;" class="tbTit">文章类型</td><td style="width:40%;" class="tbTit">文章标题</td><td style="width:15%;" class="remElem">推荐</td><td style="width:15%;">发布时间</td><td style="width:15%;">操作</td></tr></thead><tbody id="dataBody"></tbody></table><div id="listPage" class="m_pageBar com_pageBar" style="padding:0 30px;"></div></div></div></div>@*分页数据模版*@<script id="tempBody" type="text/template">{#each data as item}<tr><td style="text-align: center;"><input type="checkbox" class="ckb" data-id="!{item.ArticleID}" οnclick="change(this)" /></td><td>!{item.ArticleType}</td><td><a href="/BackstageModule/ArticleMange/Form?KeyValue=!{item.ArticleID}">!{item.ArticleTitle}</a> </td>{#if item.OptionSet == 1}<td style="text-align:center;"><img src="/Content/Images/slice/optionIco.png" width="16" height="16" title="推荐" /></td>{#else}<td style="text-align:center;"></td>{#/if}{#if item.State==1}<td style="text-align:center;">!{formatDate(item.PutTime, "yyyy-MM-dd")}</td>{#else}<td style="text-align:center;">未发布</td>{#/if}<td style="text-align:center;"><a href="/BackstageModule/ArticleMange/Form?KeyValue=!{item.ArticleID}" class="tbBtn tbEdit">编辑</a></td></tr>{#/each}</script>@section scripts{<script type="text/javascript">var KeyValue = "";$(function () {juicer.register('formatDate', formatDate);getPageData();searchEvent();});//初始化分页函数function getPageData() {var param = {rows: 10,url: "/BackstageModule/ArticleMange/GetTable",sidx: "CreateDate",sord: "DESC",searchForm: "#searchForm",infoPanel: '#dataBody',barPanel: '#listPage',template: '#tempBody',callback: handleSuccess}Pager.init(param);}//查询按钮绑定事件function searchEvent() {$("#searchBtn").on("click", function () {getPageData();});}//添加弹窗function showAdd() {window.location = "/BackstageModule/ArticleMange/Form";}//删除function delBtn() {var allVal = "";$(".dataTable tbody tr").find(".ckb").each(function () {var ckb = $(this);var ckbVal = ckb.prop("checked");var dataId = ckb.attr("data-id");if (ckbVal == "checked" || ckbVal == true) {allVal += (allVal == "" ? dataId : "," + dataId);}});if (allVal == "") {layer.alert("您没有选中任何项,请选中后再进行操作!", { icon: 0 });return false;}layer.confirm("是否删除这" + allVal.split(",").length + "条数据?", { icon: 0 }, function () {AjaxJson("/BackstageModule/ArticleMange/DeleteOther", { KeyValue: allVal }, function (data) {layer.msg(data.Message, { icon: data.Code, time: 1000 }, function () {Pager.reload();});});});}//发布function putBtn(num) {var allVal = "";$(".dataTable tbody tr").find(".ckb").each(function () {var ckb = $(this);var ckbVal = ckb.prop("checked");var dataId = ckb.attr("data-id");if (ckbVal == "checked" || ckbVal == true) {allVal += (allVal == "" ? dataId : "," + dataId);}});if (allVal == "") {layer.alert("您没有选中任何项,请选中后再进行操作!", { icon: 0 });return false;}AjaxJson("/BackstageModule/ArticleMange/PutArticle", { KeyValue: allVal, State: num }, function (data) {layer.msg(data.Message, { icon: data.Code, time: 1000 }, function () {Pager.reload();});});}//分页数据加载后绑定的函数function handleSuccess() {checkAll();}//全选(包括)function checkAll() {//全选按钮$(".dataTable thead").find(".ckbAll").change(function () {var chkAll = $(this);var chkVal = chkAll.prop("checked");if (chkVal == "checked" || chkVal == true) {$(".dataTable tbody tr").each(function () {var chk = $(this).find(":checkbox");chk.prop("checked", "checked");});}else {$(".dataTable tbody tr").each(function () {var chk = $(this).find(":checkbox");chk.removeAttr("checked");});}});}</script>}

在上面的代码中,我们引用了前面创建好的_LayoutMange.cshtml头尾布局页,还用到了juicer轻量级的模板加载数据以及弹窗,分页操作是自己写的一个m_pager.js方法配合着juicer使用,下面我们看具体代码:

//刷新表格参数var reloadParam = null;//是否往前退页;默认为退,传入false时不退页var isPrevPage = true;var Pager = function(){return {init: function(param){getList(param);},reload: function (IsPrevPage) {isPrevPage = IsPrevPage;reloadPage(reloadParam);}}}();/*初始化需要的参数param = {page:目标页码(默认:0或1均可),rows:每页显示条数(默认:15),url:请求地址,sidx:排序字段sord:排序类型;onePageShow:数据只有一页时是否显示分页(默认不显示)searchForm:查询条件所在容器infoPanel:信息回填容器,barPanel:分页条回填容器,template:信息模板容器,callback:查询到分页数据后执行的回掉函数noDataCallBack:未查询到分页数据执行的回掉函数}*/function getList(json) {//获取评论列表var json = json || {};var target = json.page || 1,//请求页码aver = json.rows || 15, //每页显示数量,默认15sidx = json.sidx, //排序字段名sord = json.sord, //排序类型ASC DESCurl = json.url,//请求URLonePageShow = json.onePageShow || false,//数据只有一页时是否显示分页(默认不显示)searchForm = json.searchForm, //查询条件所在容器infoPanel = json.infoPanel, //回填数据容器barPanel = json.barPanel,//分页条容器template = json.template,//模版callback = json.callback,//加载数据成功后执行的回调函数noDataCallback = json.noDataCallback; //加载数据为空时的回调函数//从初始化参数中构建分页请求参数,包括所有JqGridParam参数和查询条件var requestParam = searchForm ? GetWebControls(searchForm) : {};requestParam.page = target;requestParam.rows = aver;requestParam.sidx = sidx;requestParam.sord = sord;var load = layer.msg('正在加载页面数据…', { icon: 16, shade: 0.05, time: 0, area:"210px" });window.setTimeout(function () {$.post(url, requestParam, function (d) {if (d.success) {if (typeof d.data == 'undefined' || d.data.length == 0) {var width = $(infoPanel).width() <= 0 ? $(infoPanel).parent().width() : $(infoPanel).width();$(infoPanel).html('<h4 class="noInfo" style="width:' + width + 'px">暂无信息</h4>');$(barPanel).hide();noDataCallback ? noDataCallback() : null;} else {$(barPanel).show();$(infoPanel).html(juicer($(template).html(), d));callback ? callback(d) : null;}getPage(json, d.pageData, d.data.length, barPanel, getList);} else {layer.alert(d.pageData); }layer.close(load);}, "json");}, 500); }/*分页S*//*pageParam 分页参数jsonpageParam = {"records":int, 总数据条数 int"rows":int,每页显示条数 int"page":int,当前页索引(从0开始)"total":int, 查询结果的记录总数"dataLength":int当前页所包含的记录数}*/function getPage(json, pageParam, dataLength, panel, fn) {var pageNum = Math.ceil(pageParam.records / pageParam.rows);var barHtml = "";var tempHtml = "";if (pageNum <= 1) {if (json.onePageShow) {barHtml = '<div class="L clearfix">\<a href="javascript:;" class="first aElem"><i class="icon_first"></i>首页</a>\<a href="javascript:;" class="prev aElem"><i class="icon_pre"></i>上一页</a>'+ tempHtml +'<a href="javascript:;" class="next aElem"><i class="icon_next"></i>下一页</a>\<a href="javascript:;" class="last aElem"><i class="icon_last"></i>尾页</a>\</div>\<p class="page_info R">共 ' + pageNum + ' 页 ' + pageParam.records + ' 条记录 当前显示 第( <em>' + (pageParam.page) + '</em> )页</p>';}}else if (pageNum <= 8) {for (var i = 1; i <= pageNum; i++) {if (i == pageParam.page) {tempHtml += '<a href="javascript:;" class="pageBtn active">' + i + '</a>';} else {tempHtml += '<a href="javascript:;" class="pageBtn">' + i + '</a>'}}barHtml = '<div class="L clearfix">\<a href="javascript:;" class="first aElem"><i class="icon_first"></i>首页</a>\<a href="javascript:;" class="prev aElem"><i class="icon_pre"></i>上一页</a>'+ tempHtml +'<a href="javascript:;" class="next aElem"><i class="icon_next"></i>下一页</a>\<a href="javascript:;" class="last aElem"><i class="icon_last"></i>尾页</a>\</div>\<p class="page_info R">共 ' + pageNum + ' 页 ' + pageParam.records + ' 条记录 当前显示 第( <em>' + (pageParam.page) + '</em> )页</p>';} else {var start = 0;var end = 0;if (pageNum <= 8) {start = 1;end = pageNum;} else {if (pageParam.page <= 1) {start = 1;end = 8;} else if (pageParam.page + 6 <= pageNum) {start = pageParam.page - 1;end = pageParam.page + 6;} else {start = pageNum - 6;end = pageNum;}}for (var i = start; i <= end; i++) {if (i == pageParam.page) {tempHtml += '<a href="javascript:;" class="pageBtn active">' + i + '</a>';} else {tempHtml += '<a href="javascript:;" class="pageBtn">' + i + '</a>'}}barHtml = '<div class="L p_clearfix">\<a href="javascript:;" class="first aElem"><i class="icon_first"></i>首页</a>\<a href="javascript:;" class="prev aElem"><i class="icon_pre"></i>上一页</a>'+ tempHtml +'<a href="javascript:;" class="next aElem"><i class="icon_next"></i>下一页</a>\<a href="javascript:;" class="last aElem"><i class="icon_last"></i>尾页</a>\</div>\<p class="page_info R">共 ' + pageNum + ' 页 ' + pageParam.records + ' 条记录 当前显示第(<em>' + (pageParam.page) + '</em>)页</p>';}if (!$(panel).hasClass('.m_pageBar')) {$(panel).addClass('m_pageBar');}$(panel).html(barHtml);//waterfall(".center-ul", ".center-ul-li");$("a", panel).click(function () {var now = pageParam.page;var target = pageParam.page;if ($(this).text() == (now).toString()) {return false;} else if ($(this).hasClass("first")) {if (now == 1) {return false;} else {target = 1;}} else if ($(this).hasClass("last")) {if (now == pageParam.total) {return false;} else {target = pageParam.total;}} else if ($(this).hasClass("prev")) {if (now == 1) {return false;} else {target = now - 1;}} else if ($(this).hasClass("next")) {if (now == pageNum) {return false;} else {target = now + 1;}} else {var text = parseInt($(this).text());target = text;}json.page = target;fn(json);return false;});reloadParam = json;//当前如果是最后一页,并且只有一条记录时,重载参数会指向前一页//console.info("zuihou" + (json.page == pageNum));//console.info("jilu" + (dataLength == 1));if (json.page == pageNum && dataLength == 1) {isPrevPage ? null : reloadParam.page -= 1;}}/*分页E*//*重载当前页*/function reloadPage() {getList(reloadParam);}/*重载当前页*/

(5)Form.cshtml视图实现,在这个视图中我们主要用到富文本编辑器,对于该编辑器的一些设置(比如代码高亮等),在前篇文章中我们已经详细讲到,同时这个用到了的js方法和验证都在我们之前的前端文件中。下面看看改视图中的代码:

@{ViewBag.Title = "文章管理 - 添加/编辑";Layout = "~/Views/Shared/_LayoutMange.cshtml";}<style>.w_header .header-nav .nav-item li a.wzgl {border-bottom: 2px solid #2D81E0;background-color: #E8F4FF;color: #2D81E0;font-weight: bold;}</style><div class="w_center clear mAuto center-all"><div class="center-map-nav font-yahei"><div class="map-nav-tit L"><i><img src="~/Content/Images/slice/titIco.png" width="9" height="18" /></i><span class="map-nav-name">行业资讯</span><span>-添加/编辑</span></div><div class="map-nav-btn R"><input type="button" value="保存" class="mainBtn addBtn greenBtn" οnclick="AcceptClick(0)" />@*<input type="button" value="发布" class="putBtn blueBtn" οnclick="AcceptClick(1)" />*@<input type="button" value="返回列表" class="mainBtn blueBtn " οnclick="GoBack()" /></div></div><form id="form1" class="form" action="/BackstageModule/ArticleMange/SubmitFormData" method="post" enctype="multipart/form-data" style="margin: 1px"><input type="hidden" id="KeyValue" name="KeyValue" />@*<input type="hidden" id="ArticleType" name="ArticleType" />*@<input type="hidden" id="State" name="State" value="0" /><table class="form-table font-yahei"><tr><td colspan="4" class="center-tip"><p>* 格式规范:正文使用宋体14px,1.5倍行距,小标题文字使用宋体加粗,大于等于14px</p><p>* 附件上传:点击编辑器工具栏 → 回形针&nbsp;<img src="~/Content/Images/slice/attach.png" width="20" height="18" />&nbsp;图标</p></td></tr><tr><td class="table-title">标题</td><td class="table-text"><input type="text" class="txt required" name="ArticleTitle" id="ArticleTitle" datacol="yes" err="标题" checkexpession="NotNull" /></td><td class="table-title">类型</td><td class="table-text"><select id="ArticleType" name="ArticleType" class="txt"><option value="zw">杂文</option><option value="tx">图像</option><option value="yx">影像</option><option value="yy">音乐</option><option value="qg">情感</option><option value="lx">旅行</option></select></td></tr><tr class="remveAB"><td class="table-title">题图<span style="color:#999;">(用于首页轮播)</span></td><td class="table-text"><div class="PicBox"><input class="file PicUrl" type="file" name="PicUrl" value="" οnchange="SetFileVal($(this))" /></div><input type="text" class="url1 img-url" readonly="readonly" style="display:none;" /><input type="text" class="url2 img-url" name="PicUrl" id="PicUrl" readonly="readonly" /></td><td class="table-title">选项</td><td class="table-text"><input type="hidden" name="OptionSet" id="OptionSet" value="0" /><input type="checkbox" class="CheckOptionSet" οnchange="CheckOptionSet($(this))" /><span>推荐</span><span style="color:#999;">(用于首页轮播)</span></td></tr><tr><td class="table-title">文章来源</td><td class="table-text"><input type="text" class="txt" name="Source" id="Source" /></td><td class="table-title">发布时间</td><td class="table-text"><input type="text" class="txt Wdate" name="PutTime" id="PutTime" οnfοcus="WdatePicker()" datacol="yes" err="发布时间" /></td></tr></table><div><textarea id="ArticleContent" name="ArticleContent" maxlength=2147483647 class="txtArea" datacol="yes" err="文章内容" checkexpession="NotNull" style="width:99.9%;"></textarea></div></form></div>@section scripts{<script src="~/Content/Scripts/ueditor/ueditor.config.js"></script><script src="~/Content/Scripts/ueditor/ueditor.all.js"></script><script src="~/Content/Scripts/ueditor/lang/zh-cn/zh-cn.js"></script><script src="~/Content/Scripts/ueditor/prettify.js"></script><script type="text/javascript">prettyPrint(); //代码高亮var KeyValue = GetQuery('KeyValue').replace("null", "");//关于我们无内容时为nullvar ab = GetQuery('ab');$(function () {var ue = UE.getEditor('ArticleContent', { autoFloatEnabled: false, autoHeightEnabled: false });ue.addListener('ready', function (editor) {var height = $(window).height(),tabHeight = $(".form-table").outerHeight();headHeight = $(".w_header").outerHeight();footHeight = $(".w_footer").outerHeight();editToolHeight = $("#edui1_toolbarbox").outerHeight(),editBottomHeight = $("#edui1_bottombar").outerHeight(),editHeight = 300;ue.setHeight(editHeight);InitWebPage(ue);});});//初始化数据function InitWebPage(ue) {if (!!KeyValue) {$("#KeyValue").val(KeyValue);InitControl(ue);}}//文件域选择设置function SetFileVal(elem) {if (!!elem.val()) {$(".url1").val(elem.val()).show();$(".url2").hide();}else {$(".url1").show();$(".url2").hide();}}//选项推荐function CheckOptionSet(elem) {var elemVal = elem.prop("checked");if (elemVal == "checked" || elemVal == true) {$("#OptionSet").val(1);}else {$("#OptionSet").val(0);}}//得到一个对象实体function InitControl(ue) {AjaxJson("/BackstageModule/ArticleMange/SetForm", { KeyValue: KeyValue }, function (data) {data.PutTime = formatDate(data.PutTime, "yyyy-MM-dd")SetWebControls(data, "#form1");if (!!data.ArticleContent) {ue.setContent(data.ArticleContent, false);}if (data.OptionSet == 1) {$(".CheckOptionSet").attr("checked", "checked");}});}//保存按钮function AcceptClick(num) {if (!!KeyValue && num != 0) {$("#State").val(num);}//if (num == 1) {// $("#PutTime").attr("checkexpession", "NotNull");//}//else {// $("#PutTime").removeAttr("checkexpession");//}if (!CheckDataValid('#form1', true)) {return false;}//提交表单$("#form1").ajaxSubmit({dataType: "json",beforeSubmit: function () {layer.msg('正在提交信息,请稍后…', { icon: 16, shade: 0.2, time: 0 });},success: function (data) {if (data.Success) {layer.closeAll();if (!!ab) {window.location = "/BackstageModule/About/Index";}else {window.location = "/BackstageModule/ArticleMange/Index";}}else {layer.alert(data.Message, { icon: data.Code });}}});}//返回列表function GoBack() {if (!!ab) {window.location = "/BackstageModule/About/Index";}else {window.location = "/BackstageModule/ArticleMange/Index";}}</script>}

到这一步,我们一个文章管理的功能模块就完成啦,下面看看具体效果图:

FORM页面(添加修改)

index效果图:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。