当从表中获取值时,在列表框之间移动数据

时间:2014-02-18 15:58:24

标签: jquery asp.net vb.net listbox postback

我有一个包含2个列表框的网页,我需要能够在它们之间来回移动数据。我让它完美运行,直到我需要其中一个列表框(ColumnsList)从Access DB获取其数据。

这些值填充在服务器端,因此我现在使用的jquery代码总是返回所选项的计数为0.我假设我现在需要在服务器端vb代码中移动这些项。我能够成功地做到这一点,但那导致了表格的回发,这是我不能拥有的。

我尝试使用javascript调用web方法来执行移动,但除非我使用"公共共享功能"否则它不会起作用。声明,然后导致代码无法看到列表框的问题(不能从共享方法中引用类的实例成员...)。

无论如何,这是将项目移动到右侧列表框的按钮控件:

<button id="MoveRight" runat="server" style="position:absolute; left:845px; top:250px; width:30px; height:30px;" type="button">></button>

这是服务器端声明的按钮:

Protected WithEvents MoveRight As System.Web.UI.HtmlControls.HtmlButton

这是我的代码隐藏服务器端代码:

Private Sub MoveRight() Handles MoveRight.ServerClick
    Dim LeftSideCount As Integer = 0
    Dim RightSideCount As Integer = 0
    Dim SelectedItemsArray(111) As ListItem


    For x As Integer = 0 To ColumnsList.Items.Count - 1
        If ColumnsList.Items.Item(x).Selected Then
            LeftSideCount += 1
            SelectedItemsArray(x) = ColumnsList.Items.Item(x)
        End If

    Next

    For y As Integer = 0 To SelectedColumns.Items.Count - 1
        RightSideCount += 1
    Next

    If LeftSideCount + RightSideCount <= 15 Then
        'move items right

        For z As Integer = 0 To LeftSideCount - 1
            SelectedColumns.Items.Add(SelectedItemsArray(z))

            ColumnsList.Items.Remove(SelectedItemsArray(z))

        Next

    Else
        'don't move items right
    End If

End Sub

如果没有回发,我有什么方法可以做到这一点?

提前感谢任何人的建议!

1 个答案:

答案 0 :(得分:0)

没关系,我明白了。本来我以为这个:

How to prevent page being postbacked when i transfer item from one listbox to other

在我的情况下不起作用,因为那张海报和我正在努力做的事情之间存在一些差异。然而,事实证明,这是我需要的解决方案。不管怎样,谢谢!