代码之家  ›  专栏  ›  技术社区  ›  XstreamINsanity

数据表.net服务器端处理:似乎没有刷新

  •  0
  • XstreamINsanity  · 技术社区  · 16 年前

    对于我和同事正在开发的站点,我们使用了www.dataTables.net我们必须使用服务器端处理,因为表的增长量很大。以下是视图:

    <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
    <script type="text/javascript" charset="utf-8">
      $(document).ready(function() {
        $('#adminUnassignedTable').dataTable({
          "bProcessing": true,
          "bServerSide": true,
          "sAjaxSource": "/Admin/UpdateUnassignedReviewer",
          "sPaginationType": "full_numbers"
        });
      });
    </script>
    
    <h2>Unassigned IPBs</h2>
    <%
      using (Html.BeginForm("Assign","Admin",FormMethod.Post))
      {
        Html.RenderPartial("AssignmentControls", "Reviewer");
    %>
    <table cellpadding="0" cellspacing="0" border="0" class="display" id="adminUnassignedTable">
    <thead><tr>
    <th>IPB Number</th>
    <th>IPB Pub Date</th>
    <th>Change Number</th>
    <th>Change Date</th>
    <th>Total # of Parts</th>
    <th>Total # of Report Parts</th>
    <th>ALC</th>
    <th>Date Loaded</th>
    <th>Priority</th>
    <th>Update</th>
    </tr></thread>
    <tbody><tr><td colspan="12" class="dataTable_empty">Loading Data From Server</td></tr></tbody>
    </table>
    <%
      }
    %>
    

    下面是管理员控制器.cs:

    public void UpdateUnassignedReviewer()
    {
      int[] nArrayStatus = { (int)PTA.Helpers.Constants.State.Queue }
      int nTotalRecordCount = 0;
      string strEcho = "";
      _DisplayRecords = PTA.Helpers.Utility.BeginServerSideProcessing(HttpContext.Request.QueryString, nArrayStates, (int)PTA.Helpers.Constants.Location.Reviewer, ref nTotalRecordCount, ref strEcho);
      string strOutput = "";
      if (_DisplayRecords.Count() <= 0)
      {
        PTA.Helpers.Utility.WriteBlankRecord(ref strOutput, strEcho, 12);
      }
      else
      {
        strOutput += "{\"sEcho\":" + strEcho + ", ";
        strOutput += "\"iTotalRecords\": " + nTotalRecordCount.ToString() + ", ";
        strOutput += "\"iTotalDisplayRecords\": " + nTotalRecordCount.ToString() + ", ";
        strOutput += "\"aaData\": [";
        int nCounter = 0;
        foreach (IPB ipb in _DisplayRecords)
        {
          strOutput += "[ "
          strOutput += "\"";
          strOutput += PTA.Helpers.Utility.CreateDetailsLinkHTML(ipb.ID.ToString(), ipb.IPBName) + "\",";
          strOutput += "\"" + ipb.PubDate + "\",";
          strOutput += "\"" + ipb.Change + "\",";
          strOutput += "\"" + ipb.ChangeDate + "\",";
          strOutput += "\"" + ipb.TotalParts + "\",";
          strOutput += "\"" + ipb.TotalPartsReport + "\",";
          strOutput += "\"" + ipb.ALC + "\",";
          strOutput += "\"" + ipb.DateAdded + "\",";
          strOutput += "\"" + ipb.Priority + "\",";
          strOutput += "\"" + PTA.Helpers.Utility.CreateCheckBoxHTML(ipb.ID.ToString(), nCounter++);
          strOutput += "\""; 
          strOutput += "]";
    
          if(ipb != _DisplayRecords.Last())
          {
            strOutput += ", ";
          }
        }
      }
    
      strOutput += "]}";
      Response.Write(strOutput);
    }
    

    这是赋值函数

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Assign(string PriorityDropDown, string UserDropDown, string ActionDropDown)
    {
      ResetTempData(ref statusID, ref locationID, ref area);
    
      int  ipb_id = 0,
           action = -1;
    
      action = Request.Form["ActionDropDown"].ToString() == null || Request.Form["ActionDropDown"].ToString() == "" ? -1 : Convert.ToInt32(Request.Form["ActionDropDown"]);
    
      string strUser = "",
             strPriority = "";
    
      strUser = Request.Form["UserDropDown"];
      strPriority = Request.Form["PriorityDropDown"];
    
      string[] strTemp = Request.Form.AllKeys;
      foreach(string str in strTemp)
      {
        if(str.Contains("AssignCheck"))
        {
          ipb_id = Convert.ToInt32(Request.Form[str]);
    
          if(action > -1 || (strUser != null || strUser != "") || (strPriority != null || strPriority != ""))
          {
            switch (action)
            {
              case -1:
                Update(ipb_id, strPriority, strUser);
                break;
              case 1:
              case 2:
              case 5:
              case 8:
                Action(ipb_id, action);
                break;
              default: break;
            }
          }
        }
      }
    
      return RedirectToAction("AdminView");
    }
    

    下面是AdminView函数

    public ActionResult(int? statusID, int? locationID)
    {
      if (!System.Web.HttpContext.Current.User.IsInRole("Admin"))
      {
        return RedirectToAction("Index", "Home");
      }
    
      PTA.Modesl.DataFactory factory = new DataFactory();
      if(statusID == null)
      {
        statusID = (int)PTA.Helpers.Constants.State.Queue;
        ViewData["status"] = statusID;
      }
    
      if(locationID == null)
      {
        locationID = (int)PTA.Helpers.Constants.Location.Reviewer;
        ViewData["location"] = locationID;
      }
    
      TempData["pageStatus"] = statusID;
      TempData["pageLocation"] = locationID;
      TempData["Area"] = Request.QueryString["Area"]?? "Unassigned";
    
      return View();
    }
    

    1 回复  |  直到 16 年前
        1
  •  0
  •   XstreamINsanity    16 年前

    哈哈。答案是使用最新版本。我使用的是1.6.7,而我本应该使用1.7.0。现在可以了。

    推荐文章