Frage

Für die Website meine Mitarbeiter und ich arbeiten an verwendeten wir das Datatable-Format von www.dataTables.net und wir haben wegen der Server-Side-Verarbeitung verwenden, wie sehr die Tabellen wachsen. Hier ist die Ansicht:

<%@ 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>
<%
  }
%>

Hier ist die sAjaxSource Funktion in dem AdminController.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);
}

Hier ist die Assign-Funktion

[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");
}

Hier ist die AdminView Funktion

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();
}

Auch als Notiz, meine Dev-Maschine ist nicht die gleiche wie meine Netzwerk-Maschine. Also ich nicht kopieren und einfügen kann, kann ich auch nicht Daumen-Laufwerke verwenden. Deshalb habe ich alles manuell eingeben. Also, wenn Sie ein paar Tippfehler sehen, fragen Sie mich einfach und ich werde Sie wissen lassen, ob es richtig ist. Außerdem gibt es zwei Aktionen, die Sie fragen, um zu sehen, ich habe einfach nicht geben sie nur, weil, wie lange es dauerte, alles andere zu geben. Aktion und zuordnen. Wenn Sie wollen / müssen, sie sehen, lassen Sie mich wissen. Danke.

War es hilfreich?

Lösung

lol. Die Antwort ist die neueste Version verwenden. Ich war mit 1.6.7, wenn ich 1.7.0 verwendet haben sollte. Es ist nun funktioniert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top