2011-07-25 58 views
2

使用telerik mvc网格和ajax,给我一些头痛的问题。 我想插入一些简单的链接,以执行删除命令相同的行为(因为我只是不希望默认的命令列)。 但我失败了。 默认的删除命令很好用:删除记录并刷新网格。 我的自定义链接,只删除记录,但网格不刷新。Telerik mvc网格和自定义命令

这是我的代码。也许我错过了一件简单的事情。

查看:

@model Benner.Saude.Mapeamento.Especialidade[] 


@(Html.Telerik().Grid(Model) 
    .Name("Grid") 
    .DataKeys(keys => keys.Add(c => c.Handle))   
    .DataBinding(dataBinding => dataBinding 
     .Ajax() 
     .OperationMode(GridOperationMode.Client) 
     .Select("AjaxPesquisar", "Especialidade") 
     .Update("AjaxAtualizar", "Especialidade") 
     .Delete("Delete", "Especialidade")) 
    .HtmlAttributes(new { @class = "grid-padrao" }) 
    .ClientEvents(events => events 
     .OnDataBound("atualizarCss") 
    ) 
    .Columns(columns => 
    { 
     .ClientTemplate("<text><a href='/Especialidade/Delete/33' class='formatacao delete-link' image='delete'/></text>") 
     .Width(20).Title("Commands"); ***this does not works *** 


     columns.Bound("Descricao").Title("Descrição"); 
     columns.Bound("Handle").Title("Código"); 
     columns.Command(commands => 
     { 
      commands.Delete().ButtonType(GridButtonType.BareImage); ***this works*** 

     }).Width(70); 

    })   
    .Pageable() 
    .Sortable() 

    ) 

控制器:

[AcceptVerbs(HttpVerbs.Post | HttpVerbs.Get)] 
    [GridAction] 
    public ActionResult Delete(int id) 
    { 
     cadastro.ExcluirEspecialidade(Session["token"].ToString(), id); 
     Especialidade[] especialidades = consulta.PesquisarEspecialidades(Session["token"].ToString()); 
     return View(new GridModel(especialidades)); 
    } 

的Javascript:

$("a.delete-link").click(function (event) { 
    var link = $(this)[0]; 

    if (confirm("Confirm delete?")) { 
     $.post(link.href); 
    } 

    return false; 
}); 

回答

2

你必须得到网格对象,并呼吁重新绑定在Ajax回调像

$("a.delete-link").click(function (event) { 
    var link = $(this)[0]; 

    if (confirm("Confirm delete?")) { 
     $.post(link.href, function(data) 
      { 
      var $grid = $("#Grid").data("tGrid"); 
      $grid.rebind(); 
      }); 
    } 

    return false; 
}); 

$("#Grid")“网格”是网页上的网格控件的名称。休息是语法

+0

嗨穆罕默德,谢谢!这是缺少的! –

+0

@paulo很高兴它有帮助。顺便说一句,如果它有帮助,你可以将它标记为答案。有关详细信息,请参阅http://stackoverflow.com/faq#howtoask –