2013-10-08 2 views
1

Моя проблема в том, что у меня есть страница, где есть кнопка, используемая для изменения состояния таблицы. Что происходит, если страница прокручивается, и я нажимаю кнопку ниже, она обновляет страницу состояния и будет расти. Я хочу, чтобы при изменении состояния оставалось место, где была нажата кнопка.Кнопка JQUERY возвращается к элементу индекса

ОТКРЫТАЯ ТЕНЬ:

$(".table-change-link").click(function (e) { 
     e.preventDefault(); 
     var div = this.rel; 
     $.get($(this).attr("href"), function (result) { 
      $("#" + div).html(result); 
      $("#" + div).dialog({ width: 500, height: 200, modal: true }); 
     }); 
    }); 

VIEW:

<td class="table-comand"> 
     <a href="@Url.Action("AlterarSituacao", ViewBag.Routes)" title="Atualizar Situação"  class="table-change-link" id="situacao" rel="DivAtualizaSituacao"></a> 
     <div id="DivAtualizaSituacao"></div> 
    </td> 

CONTROLLER: этого действия запроса

public ActionResult AlterarSituacao(int page=1) 
     { 
      CreateRouteValuesForFilters(); 
      routes.Add("page", page); 
      ViewBag.Routes = routes; 

      ViewBag.IdSituacaoDocumentoLOV = new SelectList(this.repository.GetAllSituacao().ToList(), "IdSituacaoDocumento", "NomeSituacao"); 
      return View(); 
     } 

     [HttpPost] 
     public ActionResult AlterarSituacao(int IdSituacaoDocumento, int id, int page = 1) 
     { 
      CreateRouteValuesForFilters(); 
      routes.Add("page", page); 
      ViewBag.Routes = routes; 

      this.repository.AlteraSituacaoDocumento(id, IdSituacaoDocumento); 
      this.repository.SaveChanges(); 


      return RedirectToAction("Index",routes); 
     } 

Как это сделать?

ответ

1

Я думаю, вам нужно добавить немного больше кода, чтобы показать, что делает jquery при возврате из AlterarSituacaoaction. я думаю, что после Ajax вызова, она возвращает partialview и предварительно pends обновленного <td> элемента и удаляет старые одно-, как я сказал, догадки, пока больше коды настоящего

[обновления], чтобы показать прокрутку принести <td> в поле зрения на основе ID:

$('html, body').animate({ 
    scrollTop: $('#item.IdSolicitacao').offset().top, 
    scrollLeft: $('#item.IdSolicitacao').offset().left 
}, 'slow'); 

, очевидно, вы должны быть в состоянии захватить <td> ид в качестве переменной от рутины, а не закодированного пример выше.

+0

José, напишите свой код ajax, и я думаю, что мы отправимся на гонки .. (т. Е. Обновите исходное сообщение) –

+0

Хосе обновили. нехорошо, но похоже, что он должен работать –

+0

José, это звучит так, будто он не использует ajax, а вместо этого использует полное перенаправление для публикации. если вы не вернете какой-то идентификатор, то я боюсь, что это не будет возможно, так как страница больше не имеет никакого контекста для инициирующего действия. вам действительно нужно сделать вопрос более всеобъемлющим, поскольку мы как бы взламываем наш путь, пока не появится следующий тупик в понимании –

Смежные вопросы