在这之前一直没有写过碰过MVC,更别说ajax,但是项目需要,只好边学边做了,希望跟我一样的朋友也可以看到文章,希望可以应用的到你们的项目中去。好了废话不多说,现在开始动手吧。
前台页面 Index.cshtml,这个页面主要是布局控件 引用样式和js
@{ //收费查询页面 ViewBag.Title = "互联网云停车场-收费查询"; @Scripts.Render("~/Scripts/jquery-1.7.1.min.js") @Scripts.Render("~/Scripts/class.js") @Scripts.Render("~/Scripts/Validate.js") @Scripts.Render("~/Scripts/main/Select.js") @Styles.Render("~/Content/GooutRecord.css") @Styles.Render("~/Scripts/PagePaging.js") Layout = "~/Views/Shared/_LayoutPageMu.cshtml"; } <div class="Content_R"> <asp:contentplaceholder id="ContentPlaceHolder1" runat="server"> <div class="main_query"> 卡片号码:<input id="queryCardNO" type="text" validate="number" value="" /> 车牌号码:<input id="queryCPH" type="text" validate="number" value="" /> 停车场名称:<input id="queryParkName" type="text" validate="number" value="" /> <button id="queryBtn" rel="type1" value="查询" >查询</button> <button id="queryBtnGj" rel="type1" value="高级查询" >高级查询</button> </div> <div class="tb_info"> <table id="tb"> <thead> <tr class="tr-title"> <th>卡片号码</th> <th>车牌号码</th> <th>卡片种类</th> <th>入场时间</th> <th>出场时间</th> <th>入场名称</th> <th>出场名称</th> <th>入场操作卡号</th> <th>出场操作卡号</th> <th>入场操作员</th> <th>出场操作员</th> <th>入场图片</th> <th>入场人员</th> <th>出场图片</th> <th>出场人员</th> <th>证件图片</th> <th>收费金额</th> <th>卡上余额</th> <th>应收金额</th> <th>收费时间</th> <th>收费人员</th> <th>收费卡号</th> <th>收费口名</th> <th>超时标志</th> <th>超时收费时间</th> <th>超时收费金额</th> <th>车场编号</th> <th>大小标识</th> <th>停车场名称</th> <th>免费原因</th> </tr> </thead> <tbody id="group_one"> </tbody> </table> </div> <div class="Page_number"> <div class="Page_number_btn"> <button id="Print_Btn" rel="type1" value="导出" >导出Excel</button> <button id="Export_Btn" rel="type1" value="打印" >打印</button> </div> <div id="barcon"></div> </div> </asp:contentplaceholder> </div>
Select.js 这个脚本就是通过对control层的数据进行输出,其中重点就是分页技术的实现,代码很清晰
下面是Contorter层的数据输出,这些大家都应该很熟悉不过了
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using znykt.Models; using System.Text; using System.Data.sqlClient; using System.Data; namespace znykt.Controllers { public class GOOUTRECORDController : Controller { // // GET: /GOOUTRECORD/ public ActionResult Index() { return View(); } public JsonResult FindQuery(string CardNO,string CPH,string ParkName,int pageIndex = 0,int pageSize = 22) { Models.FindSelectModel result = new Models.FindSelectModel { Count = 0,SumCount=0,Success = true,Data = new List<Models.GooutRecordModel>() }; try { DataTable Relustdt = SearchGooutRecordPro(CardNO,CPH,ParkName,pageIndex,pageSize).Tables[0];// SelectMYCARGOOUTRECORD(CardNO,ParkName); result.SumCount = Convert.ToInt32(SearchGooutRecordPro(CardNO,pageSize).Tables[1].Rows[0][0].ToString()); for (int i = 0; i < Relustdt.Rows.Count; i++) { Models.GooutRecordModel m = new Models.GooutRecordModel(); m.CardNO = Relustdt.Rows[i]["CardNO"].ToString(); m.CPH = Relustdt.Rows[i]["CPH"].ToString(); m.CardType = Relustdt.Rows[i]["CardType"].ToString(); m.InTime = Relustdt.Rows[i]["InTime"].ToString(); m.OutTime = Relustdt.Rows[i]["OutTime"].ToString(); m.InGateName = Relustdt.Rows[i]["InGateName"].ToString(); m.OutGateName = Relustdt.Rows[i]["OutGateName"].ToString(); m.InOperatorCard = Relustdt.Rows[i]["InOperatorCard"].ToString(); m.OutOperatorCard = Relustdt.Rows[i]["OutOperatorCard"].ToString(); m.InOperator = Relustdt.Rows[i]["InOperator"].ToString(); m.OutOperator = Relustdt.Rows[i]["OutOperator"].ToString(); m.InPic = Relustdt.Rows[i]["InPic"].ToString(); m.InUser = Relustdt.Rows[i]["InUser"].ToString(); m.OutPic = Relustdt.Rows[i]["OutPic"].ToString(); m.OutUser = Relustdt.Rows[i]["OutUser"].ToString(); m.ZJPic = Relustdt.Rows[i]["ZJPic"].ToString(); m.SFJE = Relustdt.Rows[i]["SFJE"].ToString(); m.Balance = Relustdt.Rows[i]["Balance"].ToString(); m.YSJE = Relustdt.Rows[i]["YSJE"].ToString(); m.SFTime = Relustdt.Rows[i]["SFTime"].ToString(); m.SFOperator = Relustdt.Rows[i]["SFOperator"].ToString(); m.SFOperatorCard = Relustdt.Rows[i]["SFOperatorCard"].ToString(); m.SFGate = Relustdt.Rows[i]["SFGate"].ToString(); m.OvertimeSymbol = Relustdt.Rows[i]["OvertimeSymbol"].ToString(); m.OvertimeSFTime = Relustdt.Rows[i]["OvertimeSFTime"].ToString(); m.OvertimeSFJE = Relustdt.Rows[i]["OvertimeSFJE"].ToString(); m.CarparkNO = Relustdt.Rows[i]["CarparkNO"].ToString(); m.BigSmall = Relustdt.Rows[i]["BigSmall"].ToString(); m.ParkName = Relustdt.Rows[i]["ParkName"].ToString(); m.FreeReason = Relustdt.Rows[i]["FreeReason"].ToString(); result.Data.Add(m); } result.Count = result.Data.Count; } catch (Exception e) { result.Success = false; result.Message = e.Message; return Json(result,JsonRequestBehavior.AllowGet); } return Json(result,JsonRequestBehavior.AllowGet); } dbHelper dbsql = new dbHelper(); #region 数据查询 用户密码是是否存在 public DataSet SearchGooutRecordPro(string CardNO,int pageIndex,int pageSize) { sqlConnection conn = dbsql.Getconn() ; conn.Open(); sqlCommand cmd = new sqlCommand(); cmd.Connection = conn; cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "SearchGooutRecordPro"; cmd.Parameters.Add(new sqlParameter("@CardNO",CardNO)); cmd.Parameters.Add(new sqlParameter("@CPH",CPH)); cmd.Parameters.Add(new sqlParameter("@ParkName",ParkName)); cmd.Parameters.Add(new sqlParameter("@pageIndex",pageIndex)); cmd.Parameters.Add(new sqlParameter("@pageSize",pageSize)); sqlDataAdapter dataAdapter = new sqlDataAdapter(cmd); DataSet ds = new DataSet(); try { dataAdapter.Fill(ds); } catch (Exception) { } finally { if (dataAdapter != null) { dataAdapter.Dispose(); } if (cmd != null) { cmd.Dispose(); } if (conn != null) { conn.Dispose(); } } return ds; } public DataTable SelectMYCARGOOUTRECORD(string CardNO,string ParkName ) { //StringBuilder strsql = new StringBuilder(); //strsql.Append("select * from View_MYCARGOOUTRECORD where CardNO like '%@CardNO%' and CPH like '%@CPH%' and ParkName like '%@ParkName%' "); //sqlParameter[] params_add = { // new sqlParameter("@CardNO",sqlDbType.VarChar),// new sqlParameter("@CPH",// new sqlParameter("@ParkName",// }; //params_add[0].Value = CardNO; //params_add[1].Value = CPH; //params_add[2].Value = ParkName; StringBuilder strsql = new StringBuilder(); strsql.Append("select * from View_MYCARGOOUTRECORD where 1=1 "); List<string> ltstr = new List<string>(); if (CardNO != "") { ltstr.Add(" CardNO like '%"+CardNO+"%'"); } if (CPH != "") { ltstr.Add(" CPH like %' + CPH + '%"); } if (ParkName != "") { ltstr.Add(" ParkName like %' + ParkName + '%"); } if (ltstr.Count>1) {strsql.Append( string.Join(" and ",ltstr)) ; } if (ltstr.Count == 1) { strsql.Append(" and "+ltstr[0]); } DataTable dt = dbsql.GetTable(strsql.ToString()); return dt; } #endregion } }
至于项目中的mode就不一一写出来了。