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

时间:2009-10-29 17:40:20

标签: c# asp.net jquery jquery-ui

我有以下ListView,其中我使用JQuery UI可排序函数来对ListView中的项进行排序。问题是我不能在ItemTemplate中的表上放置一个可排序的类,因为它不起作用,如果我在外部div上放置一个class =“sortable”,它可以工作,但它允许我对所有内容进行排序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>

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

1 个答案:

答案 0 :(得分:0)

为了使sortable可以工作,你必须将它应用于父元素(通常是div)。

在可排序的调用中,使用以下属性:

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

可以使用HiddenField并将其值分配给:

来保留排序顺序
$(".sortable").sortable("toArray");

然后使用此值来排序列表视图。

但这种方法存在问题。 HR不可排序,因此您不能在它们之间放置项目。最好在你的桌子周围潜水,底部有一小时。

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