2014-02-18 46 views
0

我有一個包含2個列表框的網頁,我需要能夠在它們之間來回移動數據。直到我需要其中一個列表框(ColumnsList)才能從Access數據庫獲取其數據時,我的工作狀況一直很好。當從表中獲取值時,在列表框之間移動數據

這些值填充在服務器端,所以我現在使用的jQuery代碼現在總是返回所選項目的計數爲0.我假設我現在需要將這些項目移到服務器端vb代碼中。我成功地做到了這一點,但那導致了表單的回傳,這是我不能擁有的。

我試圖使用JavaScript來調用webmethod來執行移動,但除非我使用「公共共享函數」聲明,然後導致無法通過列表框看到問題該代碼(不能從共享方法中引用類的實例成員...)。

不管怎麼說,這是按鈕控制移動的項目列表框右邊:

<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 

有沒有什麼辦法可以做到這一點,而不發生回傳?

在此先感謝任何人的建議!

回答