2013-10-08 79 views
1

我的问题是这样的,我有一个页面,其中有一个按钮用于更改表的状态。 发生了什么事情是,如果页面滚动,我点击下面的按钮,它会更新状态页面,并会上升。我想要的是当状态改变时它仍然是点击按钮的地方。JQUERY按钮返回索引元素

OPEN SHADOW:

$(".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

我想你需要添加更多的代码来显示从AlterarSituacaoaction返回的jQuery的功能。我的猜测是,AJAX调用后,它返回一个partialview和预暂时搁置更新<td>元素,并删除旧的单正如我所说的,猜测直到目前更多的代码

[更新]显示滚动带<td>到基于ID的看法:

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

显然,你应该能够<td> ID从你的日常的变量,而不是上面的硬编码的例子。

+0

José,发布你的ajax代码,我想我们将会参加比赛......(即更新原始帖子) –

+0

José,已更新。未经测试,但看起来应该可以工作 –

+0

José,听起来好像它不是使用ajax,而是在后期使用完整的重定向行为。除非你发回某种身份证,否则恐怕这是不可能的,因为这个页面已经没有任何关于发起行动的背景了。你真的需要提出更全面的问题,因为我们有点ha our直到理解的下一个终点暴露出来 –