你的位置:首页 > 软件开发 > ASP.net > asp.net mvc jqgrid 同一个页面查询不同的表,jqgrid显示不同表的表头和数据并且分页

asp.net mvc jqgrid 同一个页面查询不同的表,jqgrid显示不同表的表头和数据并且分页

发布时间:2015-08-28 13:00:24
基于我上一篇文章<a href="http://www.cnblogs.com/alasai/p/4765756.html">asp.net mvc excel导入</a>中不同的部门上传不同的excel文件类型,当在同一个页面查询时怎 ...

基于我上一篇文章<a href="http://www.cnblogs.com/alasai/p/4765756.html">get='_blank'>asp.net mvc excel导入</a>中不同的部门上传不同的excel文件类型,当在同一个页面查询时怎么办呢。

解决方案:根据传过来的表名和时间参数一次性把数据全部加载到table中,其中表头要我们一个个去定,主体的顺序我们也要和表头一样,加载到前台再用表格分页控件来分页,我这里大概有100多个excel文件类型,他们的列名都不要,想想这样的做法不且实际。

有没有其他的解决方案呢,看了很多的jqgrid示例,他们的表头(colNames)和内容(colModel)都是首先定死的。这里我想到一个解决方案就是把colNames和colModel都做成活的,这样不就可以完美解决上面的问题了吗,

想法总是好的,但做起来不是一帆风顺的,但前提是你得有这种想法才行。

想法和思路:

   1.把jqgrid的colNames和colModel都做成活的,但是每个表的colNames都不一样,而且他们的顺序必须一致才行,怎么办呢,在<a href="http://www.cnblogs.com/alasai/p/4765756.html">asp.net mvc excel导入</a>这篇文章中我上传文件成功之后会把他们的colNames和colModel都保存在以他们表名命名的txt文件中。代码片段如下

asp.net mvc jqgrid 同一个页面查询不同的表,jqgrid显示不同表的表头和数据并且分页

所以展示每个表的colNames和colModel就不成问题

后台c#代码如下:

 [HttpPost]    public ActionResult GetTestData(string department, string tablename, string StartTime, string EndTime)    {      Stopwatch watch = CommonHelper.TimerStart();      string sql5 = "SELECT * FROM " + department + "_" + tablename + " where 1=1 and enabled='1' ";      if (!string.IsNullOrEmpty(StartTime))      {        sql5 += " and convert(varchar(10),addtime,120)>='" + StartTime + "' ";      }      if (!string.IsNullOrEmpty(EndTime))      {        sql5 += " and convert(varchar(10),addtime,120)<='" + EndTime + "' ";      }      DataTable ListData = DataFactory.Database().FindTableBySql(sql5);      this.dirCSV = Server.MapPath("~/Content/uploads/");      StreamReader sr = new StreamReader(this.dirCSV + "\\" + department + "_" + tablename + ".txt");      String line;      List<string> list = new List<string>();      while ((line = sr.ReadLine()) != null)      {        list.Add(line.ToString());      }      string colnames = "";      string[] chinesname = list[0].ToString().Trim(',').Split(',');      string[] englishname = list[1].ToString().Trim(',').Split(',');      for (int i = 0; i < chinesname.Length; i++)      {        colnames += "'" + chinesname[i].ToString() + "',";      }      List<Department> list1 = new List<Department>();      for (int j = 0; j < englishname.Length; j++)      {        list1.Add(new Department { index = englishname[j].ToString().ToLower(), lable = chinesname[j].ToString(), name = englishname[j].ToString().ToLower(), sortable = "false" });      }      var result = new      {        Json = new        {          colNames = chinesname,          colModels = (from dept in list1                 select new                 {                   index = dept.index,                   lable = dept.lable,                   name = dept.name,                   sortable = false                 }),          data = new          {            options = new            {              page = "1",              total = "1",              records = "1",              costtime = CommonHelper.TimerEnd(watch),              rows = ListData            }          }        }      };      return Content(result.ToJson());    }

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:asp.net mvc jqgrid 同一个页面查询不同的表,jqgrid显示不同表的表头和数据并且分页

关键词:ASP.NET

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。