2012-01-05 2 views
0

리스트를 리피터로 보내고 jquery sortable()로 정렬 한 다음, 정렬 된리스트를 세션 변수에 넣어야합니다. 정렬 된 값을 목록으로 다시 가져 오는 방법을 알아낼 수 없습니다.리피터로 정렬 한 후 리턴리스트

HTML 코드 :

<div> 
<asp:Repeater ID="LstSortable" runat="server"> 
    <HeaderTemplate> 
     <ul id="sortable"> 
    </HeaderTemplate> 
    <ItemTemplate> 
     <li> 
      <%# Container.DataItem %> 
     </li> 
    </ItemTemplate> 
    <FooterTemplate> 
     </ul> 
    </FooterTemplate> 
</asp:Repeater> 

</div> 

페이지로드 : 그것은 현재 수행

이 내가 함께 연주하고있는 코드입니다 :

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 

    'create test array 
    Dim order As New List(Of String) 
    order.Add("Item1") 
    order.Add("Item2") 
    order.Add("Item3") 
    order.Add("Item4") 

    'testing repeater 
    LstSortable.DataSource = order 

    LstSortable.DataBind() 

End Sub 

버튼을 눌러 세션 변수로 정렬 된 목록을 넣어 작동하지 않음 :

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click 

    Dim orderBy As New List(Of String) 

    Dim count As Integer 
    For count = 0 To LstSortable.Items.Count - 1 Step count + 1 
     Dim chk As ListItem = CType(LstSortable.Items(count).FindControl(LstSortable.ID), ListItem) 
    Next 

    Session("OrderBy") = orderBy 

End Sub 

도움을 주시면 감사하겠습니다. 감사.

이것은 vb.net을 사용 중입니다.

답변

0

jquery를 사용하여 li 요소의 배열을 만든 다음이를 ajax 호출을 사용하여 웹 서비스에 전달하여이 문제를 해결했습니다.

나는 웹 서비스에서 세션을 사용했다 :

<WebMethod(EnableSession:=True)> _ 

는 그럼 난 문자열로 배열을 구문 분석하고 세션 변수에 배치.

JQuery와 :

 $("#sortable").sortable({ 
      placeholder: "vacant", 
      update: function(e, ui) { 

       //create vars 
       var orderArray = [], wrap = {}; 

       $("#sortable li").each(function(i) { 

        var imgObj = $(this).text(); 
        //alert(imgObj); 
        //add object to array 
        orderArray.push(imgObj); 
       }); 

       //wrap in object 
       wrap.d = orderArray; 

       //pass to server 
       $.ajax({ 
        type: "POST", 
        url: "../WebService.asmx/updateOrder", 
        data: JSON.stringify(wrap), 
        contentType: "application/json; charset=utf-8", 
        success: function(data) { 
         if (data.d === "saved") { 
          alert("success"); 
         } else { 
          alert("fail"); 
         } 
        }, 
        error: function(xmlHttpRequest, status, err) { 
         alert("This has error: " + err); 
        } 

       }); 

      } 
     }); 

웹 서비스 :

Public Class WebService 
Inherits System.Web.Services.WebService 

<WebMethod(EnableSession:=True)> _ 
Public Function updateOrder(ByVal d As String()) As String 

    'process JSON object 
    Dim orderBy As String 
    Dim str As String 
    orderBy = New String(" Order By ") 
    For Each str In d 
     'define procedure 
     orderBy += str 
    Next 

    Session("OrderBy") = orderBy 

    'success! 
    Return "saved" 

End Function 

End Class 
관련 문제