views:

54

answers:

1

In the below code ,the html loads up and will call group_map set python function.My question is that there is pagination enabled in the system so if a user in page 3 deletes a entry the page reloads and brings back to page 1.How to make the user stay on the same page after deleting an entry

Datatable used is from http://www.datatables.net/

                 <html>
                 <head>
                 <link rel="stylesheet" type="text/css" href="css/datatable.css" />
                 <script type="text/javascript" src="js/jquery.dataTables.js"></script>
                 </head>
                 <script>
                 var oTable;

                 function fnFormatDetails ( nTr )
                 {
                    var iIndex = oTable.fnGetPosition( nTr ) ;
                    var aData = oTable.fnSettings().aoData[iIndex]._aData;

                    var sOut = aData[6];

                    return sOut;
                 }

                  $(document).ready(function() {
                  $.ajaxSetup({ cache: false });
                    oTable = $('#s_group_table').dataTable( {
                       "aoColumns": [
                          {"sWidth": "30%" },
                          {"sWidth": "20%" },
                          {"bSortable": false,"sWidth": "5%" },
                          {"bSortable": false,"sWidth": "5%" },
                       ],
                       "aaSorting": [[0, 'desc']],
                       "bProcessing": true,
                       "bServerSide": true,
                       "sAjaxSource": "/repo/group_set/",
                       "bJQueryUI": true,
                       "sPaginationType": "full_numbers",
                       "bFilter": false,
                       "oLanguage" : { "sZeroRecords": "No data found", "sProcessing" : "Fetching Data" }
                    });

                 });


                 function delete_set(id)
                 {
                       $.post("/repo/group_set_delete/" + id) ;
                       oTable.fnDraw(true) ;
                       location.reload();
                 }
                 </script>

                 <div id="s_group_table">
                 <table cellpadding="0" cellspacing="0" border="0"  width="100%">
                    <thead>
                       <tr>
                          <th width="30%">Name</th>
                          <th width="30%"></th>
                       </tr>
                    </thead>
                    <tbody>
                       <tr>
                          <td colspan="2" class="dataTables_empty">No data found</td>
                       </tr>
                    </tbody>
                 </table>
                 </div>





  def group_set(request):
     try:
        response_dict = {}
        offset = int(request.GET.get('iDisplayStart'))
        limit = int(request.GET.get('iDisplayLength')) + offset
        echo = request.GET.get('sEcho')

        sort_cols = int(request.GET.get('iSortingCols'))
        for i in range(0, sort_cols):
           dir = request.GET.get('iSortDir_' + str(i))
           if dir == "asc":
              dir = ""
           else:
              dir = "-"
           order_by = dir + group_map (request.GET.get('iSortCol_' + str(i))) + ","

        order_by = order_by.strip(',')


        total =  GroupSet.objects.filter(pk=request.profile.my_id).count()
        if limit > total:
           limit = total

        if order_by == "":
           groupset = GroupSet.objects.filter(pk=request.profile.my_id)[offset:limit]
        else:
           groupset = GroupSet.objects.filter(pk=request.profile.my_id).order_by(order_by)[offset:limit]

        p_array = []
        p_array_o = []
        for q in studentprofilegroup_map:
           delete_l = "<a><img title='Delete group' class=center src=\"/repo/images//del.gif\" onclick=javascript:delete_set(\"%d\")></a>&nbsp;" % (q.id)

           emp_name = q.first_name + q.last_name

           p_array_o = [emp_name , delete_l ]
           p_array.append(p_array_o)
        response_dict.update({'sEcho': echo, 'iTotalRecords': total, 'iTotalDisplayRecords': total, 'aaData': p_array}) ;

        return HttpResponse(simplejson.dumps(response_dict), mimetype='application/javascript')
     except:
        print "No records found"

Delete function is as

   def group_set_delete(request,gid):
    try:
      s_gp = GroupSet.objects.filter(pk=gid)
      s_gp.delete()
    except:
      print "could not be deleted"
A: 

What does location.reload(); do? Check if it sends a request to URL corresponding to group_set with the correct page query parameter (i.e. /app/group_set/?page=3). If it does not then you might want to construct the URL explicitly and call it.

Manoj Govindan
It is not sending the page number,how to get the current page number?
Hulk