Используя Telerik MVC Grid с AJAX, дайте мне несколько головных болей.Я пытаюсь вставить столбец с несколькими простыми ссылками, чтобы выполнить те же действия, что и команда удаления (потому что я просто не хочу столбец команды по умолчанию).Но я неудачник.Команда удаления по умолчанию прекрасно работает: удалите запись и обновите сетку.Моя пользовательская ссылка, только удаляю запись, но сетка не обновляется.
Вот мой код.Возможно, я упускаю простую вещь.
Вид:
@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;
});