我已经在我的网页上实现了拖放jquery,并且工作正常。我根据用户选择从后面的代码加载列,用户可以根据需要编辑它们。但是,当我尝试在目标列中选择项目时,其repeater.items计数为零,源repeater.items计数与页面加载时相同。这是代码。
<div class="Content" id="DragAndDrop" style="width: 100%; display: flex; justify-content: center; font-size: 9px;">
<ul id="sortable1" class="connectedSortable" style="width: 45%; border: groove">
<asp:Repeater ID="DivisionSource" runat="server">
<ItemTemplate>
<%--<li class="ui-state-default" id="lblSource" ><%# Eval("DivisionName") %></li>--%>
<li class="ui-state-default" >
<asp:Label id="lblSource" runat="server" Text='<%# Eval("DivisionName") %>' ></asp:Label> </li>
</ItemTemplate>
</asp:Repeater>
</ul>
<ul id="sortable2" class="connectedSortable" style="width: 45%; border: groove; list-style: none">
<asp:Repeater ID="DivisionDest" runat="server" >
<ItemTemplate>
<li class="ui-state-default" >
<asp:Label id="lblDest" runat="server" Text='<%# Eval("DivisionName") %>' ></asp:Label> </li>
<%-- <li class="ui-state-default" id="<%# Eval("DivisionID") %>" style="display: none;">SAP: Strategizing Activities and Practices</li>--%>
</ItemTemplate>
</asp:Repeater>
</ul>
</div>
数据受到pageload()
上的repeter数据绑定的限制DivisionSource.DataSource = DivResultSource
DivisionSource.DataBind()
DivisionDest.DataSource = DivResultDest
DivisionDest.DataBind()
访问数据的代码:
Dim DivisionSource As Repeater = Wizard1.FindControl("DivisionSource")
Dim DivisionDest As Repeater = Wizard1.FindControl("DivisionDest")
Dim SelectedDivisionvalue As String = Nothing
Dim i As Integer = 1
For Each item As RepeaterItem In DivisionDest.Items
If (item.ItemType = ListItemType.Item) Then
Dim lblValue As Label = CType(item.FindControl("lblDest"), Label)
SelectedDivisionvalue = lblValue.Text
i += 1
End If
Next
在回发时,当加载页面和DivisionDest.items计数为0时,DivisionSource.items计数与默认值相同。
答案 0 :(得分:1)
您尝试在客户端添加拖放服务器端控件。服务器控件在服务器端呈现,您不能按照自己的方式执行。因此,控件会在浏览器(客户端)中添加到转发器,但当页面发布支持DivisionSource.items
计数与默认值相同时,它们将不可用。
如果您想这样做,可以使用
hidden field
或session
。
答案 1 :(得分:0)
我最终做的是能够从javascrip函数获取源和目标重复器的顺序。我将订单的值保存在隐藏变量中,并将其传递给后面的代码。以下是我能够获得订单的方式。
var order2 = $self.sortable('toArray')
此
html
会在 arrayList 中为您提供订单,您可以执行 .lenght 和其他功能来解决如果您想将用户限制在限制范围内的项目。