2013-10-08 74 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直到理解的下一個終點暴露出來 –