我有一个包含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
如果没有回发,我有什么方法可以做到这一点?
提前感谢任何人的建议!
答案 0 :(得分:0)
没关系,我明白了。本来我以为这个:
How to prevent page being postbacked when i transfer item from one listbox to other
在我的情况下不起作用,因为那张海报和我正在努力做的事情之间存在一些差异。然而,事实证明,这是我需要的解决方案。不管怎样,谢谢!