获取JQuery UI可排序以在asp.net ListView项目上工作?

获取JQuery UI可排序以在asp.net ListView项目上工作?

问题描述:

我有以下ListView中我使用JQuery UI排序函数能够排序ListView中的项目。问题是我无法在ItemTemplate的表中放置可排序的类,因为它不起作用,如果我在外部div上放置class =“sortable”,它可以工作,但它允许我排序ListView,我只是想能够移动排序表。这里是标记获取JQuery UI可排序以在asp.net ListView项目上工作?

<div> //Works here, but hr's become sortable too. 
      <asp:ListView ID="lvwDocuments" runat="server"> 
       <LayoutTemplate> 
        <h3> 
         Documents</h3> 
         <asp:PlaceHolder ID="itemPlaceHolder" runat="server"> 
         </asp:PlaceHolder> 
       </LayoutTemplate> 
       <ItemTemplate> 
        <table class="sortable"> //Does not work Here 
         <tr> 
          <td> 
           <p class="title"> 
            <a runat="server" href='<%#Eval("url") %>'> 
             <%#Eval("title") %></a></p> 
           <br /> 
           <p> 
            <%#Eval("description") %></p> 
          </td> 
         </tr> 
        </table> 
       </ItemTemplate> 
       <ItemSeparatorTemplate> 
        <hr /> 
       </ItemSeparatorTemplate> 
     </div> 

另外,即使在刷新页面后,如何保留排序顺序。

+0

嗨,我试图实现类似的东西。您是否解决了保存排序顺序的问题,如果可以,请将其添加到答案中。 – jamiebarrow 2010-08-03 09:03:39

为了可排序工作,您必须将其应用于父元素(通常为div)。

在排序通话使用以下属性:

$(".sortable").sortable("toArray"); 

然后使用这个值来订购您的列表视图:

$(".sortable").sortable({ items: "table" }); 

排序顺序可以通过使用HiddenField并赋予其价值被保留。

虽然这种方法存在问题。 HR不可排序,因此您不能将物品放置在它们之间。最好在桌子底部使用一次潜水。

<div class="sortable"> 
    <div class="item"> 
     <table> ... </table> 
     <hr /> 
    </div> 
</div>