2012-08-28 43 views
1

我試圖做一個簡單的可能的表格排序爲我的MVC項目,並在這裏發現了這個很好的參考jQuery table sort,儘管它似乎並沒有爲我工作:(有一個的jsfiddle測試有作爲當然(http://jsfiddle.net/gFzCk)的該作品,但我的不會。MVC最簡單的表格排序

這是我試圖對錶進行排序。

<table id="projectTable"> 
    <thead> 
     <tr> 
      <th id="name_header"> 
       Name 
      </th> 
      <th id="author_header"> 
       Author 
      </th> 
      <th> 
       Date Created 
      </th> 
      <th> 
       Date Edited 
      </th> 
      <th style="text-align:right;"> <a href="@Url.Action("Create", "Project")"><button>&nbsp;Create&nbsp;</button></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</th> 
     </tr> 
    </thead> 
    <tbody> 
     @foreach (var item in Model) { 
      var id = item.ProjectID; 

      <tr id='@id' class="trow @if (System.Web.HttpContext.Current.Session["_SelectedProject"].ToString() == "System.Object") { <text>none</text> } 
          else 
          { if (id == (int)System.Web.HttpContext.Current.Session["_SelectedProjectID"]) {<text>highlighted</text> }}"> 
       <td> 
        @Html.DisplayFor(modelItem => item.Name) 
       </td> 
       <td> 
        @Html.DisplayFor(modelItem => item.Author) 
       </td> 
       <td> 
        @Html.DisplayFor(modelItem => item.DateCreated) 
       </td> 
       <td> 
        @Html.DisplayFor(modelItem => item.DateEdited) 
       </td> 
       <td> 
        <a href='@Url.Action("Edit", "Project", new { id = item.ProjectID })'><img src='@Url.Content("~/Content/images/Edit16x16.png")' title="Edit"/></a> &nbsp; 
        <a href='@Url.Action("Details", "Project", new { id = item.ProjectID })'><img src='@Url.Content("~/Content/images/Details16x16.png")' title="Details" /></a> &nbsp; 
        <a href='@Url.Action("Delete", "Project", new { id = item.ProjectID })'><img src='@Url.Content("~/Content/images/Delete16x16.png")' title="Delete" /></a> &nbsp; 
        <a href='@Url.Action("Select", "Project", new { id = item.ProjectID })' class="select" ><img src='@Url.Content("~/Content/images/Select16x16.png")' title="Select" /></a> 
       </td> 
      </tr> 
     } 
    </tbody> 
</table> 

這是我的JQuery使用。

<script type="text/javascript"> 
    var table = $('#projectTable'); 

    $('#name_header, #author_header') 
     .wrapInner('<span title="sort this column"/>') 
     .each(function() { 

      var th = $(this), 
      thIndex = th.index(), 
      inverse = false; 

      th.click(function() { 

       table.find('td').filter(function() { 

        return $(this).index() === thIndex; 

       }).sortElements(function (a, b) { 

        return $.text([a]) > $.text([b]) ? 
         inverse ? -1 : 1 
         : inverse ? 1 : -1; 

       }, function() { 

        return this.parentNode; 

       }); 

       inverse = !inverse; 

      }); 

     }); 
</script> 

我已經測試它是否運行腳本或沒有,它不,它只是將不會對其進行排序...

HTML標記

我刪除tbodythead

<table id="projectTable"> 
    <tr> 
     <th id="name_header"> 
      Name 
     </th> 
     <th id="author_header"> 
      Author 
     </th> 

     <th> 
      Date Created 
     </th> 
     <th> 
      Date Edited 
     </th> 
     <th style="text-align:right;"> <a href="/Project/Create"><button>&nbsp;Create&nbsp;</button></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</th> 
    </tr> 
    <tr id='1' class="trow none "> 
     <td> 
      Project 1 
     </td> 
     <td> 
      Me 
     </td> 

     <td> 
      8/24/2012 7:08:49 PM 
     </td> 
     <td> 
      8/24/2012 7:08:49 PM 
     </td> 
     <td> 
      <a href='/Project/Edit/1'><img src='/Content/images/Edit16x16.png' title="Edit"/></a> &nbsp; 
      <a href='/Project/Details/1'><img src='/Content/images/Details16x16.png' title="Details" /></a> &nbsp; 
      <a href='/Project/Delete/1'><img src='/Content/images/Delete16x16.png' title="Delete" /></a> &nbsp; 
      <a href='/Project/Select/1' class="select" ><img src='/Content/images/Select16x16.png' title="Select" /></a> 
     </td> 
    </tr> 
    <tr id='2' class="trow none "> 
     <td> 
      Test Project 2 
     </td> 
     <td> 
      Me 
     </td> 

     <td> 
      8/27/2012 5:42:32 PM 
     </td> 
     <td> 
      8/27/2012 5:42:32 PM 
     </td> 
     <td> 
      <a href='/Project/Edit/2'><img src='/Content/images/Edit16x16.png' title="Edit"/></a> &nbsp; 
      <a href='/Project/Details/2'><img src='/Content/images/Details16x16.png' title="Details" /></a> &nbsp; 
      <a href='/Project/Delete/2'><img src='/Content/images/Delete16x16.png' title="Delete" /></a> &nbsp; 
      <a href='/Project/Select/2' class="select" ><img src='/Content/images/Select16x16.png' title="Select" /></a> 
     </td> 
    </tr> 
</table> 
+0

有你確信沒有調試控制檯(Internet Explorer = F12和Chrome = CTRL + SHIFT + J)中的腳本錯誤,也請嘗試在您的呈現標記上查看源代碼,並用生成的標記替換您的jsFiddle。 –

+0

是的,我猜你正在做點什麼。調試控制檯顯示了此。 'Uncaught TypeError:Object [object Object] has no method'sortElements'' 此外,我已經試過用我的標記,工作正常。 – rexdefuror

+0

我可能會添加,我正在使用最新的JQuery。 – rexdefuror

回答

0

在這聽起來像你缺少那種庫的引用的話,試試你的主script標籤與你的jQuery使用前添加此:

<script type="text/javascript" src="https://raw.github.com/padolsey/jQuery-Plugins/master/sortElements/jquery.sortElements.js"></script> 
+0

現在沒有錯誤,但仍然無法排序。在的jsfiddle :(再次工作正常... – rexdefuror

+0

@ user1407758:我想你'thead'和'tbody'可能會搞亂該庫了,然後在您的標記,請嘗試刪除這些反映在您的jsfiddle例如有標記也。 ,你能粘貼製作成的標記對您的問題編輯 –

+0

我提供了編輯標記,還我刪除'thead'和'tbody'仍然沒有 – rexdefuror