0

我有两个 asp.net 列表框。我想使用拖放将项目从一个列表框移动到另一个。我尝试使用 j Query,但 dint 似乎有效。我还将我的列表框更改为 HTML 选择,但仍然相同。我试图添加按钮来做同样的事情。我的代码如下。任何帮助都感激不尽。

<script type="text/javascript">
    $(function () {
        $("#Setter, #Getter").sortable({
            connectWith: ".sortable"
        }).disableSelection();
    });
    $(document).ready(
   function () {
       $('#Selectone').click(
           function (e) {
               $('#Setter > option:selected').appendTo('#Getter');
               e.preventDefault();
           });

       $('#SelectAll').click(
       function (e) {
           $('#Setter > option').appendTo('#Getter');
           e.preventDefault();
       });

       $('#RemoveOne').click(
       function (e) {
           $('#Getter > option:selected').appendTo('#Setter');
           e.preventDefault();
       });

       $('#RemoveAll').click(
       function (e) {
           $('#Getter > option').appendTo('#Setter');
           e.preventDefault();
       });

   });
</script>

  <select id="Setter" runat ="server" datasourceid="LinqDataSource1" class="sortable"   multiple="true"  draggable="true" datatextfield="Section" datavaluefield="Section" dropzone="Getter" size="30" >  </select>
<asp:LinqDataSource ID="LinqDataSource1" runat="server" ContextTypeName="WebApplication1.insentraDataContext" EntityTypeName="" OrderBy="Section" Select="new (Section)" TableName="Sections">
</asp:LinqDataSource>
  <asp:Button ID="Selectone"  runat="server" Text=">" />
  <asp:Button ID="SelectAll"  runat="server" Text=">>" />
  <asp:Button ID="RemoveOne"  runat="server" Text="<" />
  <asp:Button ID="RemoveAll"  runat="server" Text="<<" />

4

1 回答 1

0

我不得不采取不同的方法来实现与数据库连接的列表框之间的拖放。我的解决方案如下。我没有使用 asp.net 列表框,而是使用 ul 创建了一个列表视图

<table>
    <tr>
        <td>
            <asp:ListView ID="Listview1" runat="server" DataSourceID="LinqDataSource1">
                <LayoutTemplate>
                    Unallocated Sections
    <ul class="sortable" draggable="true" id="Setter" style="overflow: scroll; empty-cells: hide; height: 500px; width: 200px; border: solid  1px; background: #b6b6b6;">
        <li id="Li1" runat="server" draggable="true" style="user-select: element;">
            <asp:PlaceHolder ID="PlaceHolder1" id-="itemPlaceholder" runat="server"></asp:PlaceHolder>
        </li>

    </ul>
                </LayoutTemplate>
                <ItemTemplate>
                    <li id="Li2" runat="server">
                        <%# Eval("Section")%>
                    </li>
                </ItemTemplate>
            </asp:ListView>
        </td>
        <td>Allocated Sections
             <ul class="sortable" draggable="true" id="Getter" style="overflow: scroll; height: 500px; width: 200px; border: solid  1px; background: #fff;">
                 <li style="color: red;"></li>
             </ul>
        </td>
    </tr>
</table>

和 javascript 作为

$(function () {
        $("#Setter,#Getter").sortable({
            connectWith: ".sortable"
        }).selectable();
    });

您可以根据需要选择不同的选项,但它确实完成了列表框之间的拖放。有关更多选项,请参阅http://jqueryui.com/sortable/

于 2013-05-06T01:25:34.117 回答