2015-07-16 7 views
1

Я пытаюсь отправить идентификатор из строки в Grid на ClientTemplate. У меня есть столбец с кнопкой удаления, и я хочу отправить идентификатор строки, нажатой на ClientTemplate, чтобы я мог нажать на контроллер с вызовом AJAX. Я знаю, что могу сделать это с помощью «Url.Action» («Action», «Controller») », но я пытаюсь сделать это без обновления страницы, так как Grid, с которой я имею дело, представляет собой дочерний вид, расположенный в всплывающем окне Kendo , Я пробовал несколько вариантов синтаксиса безрезультатно. Любая помощь, помогающая решить этот вопрос, будет очень и очень оценена. Ниже приведены некоторые из синтаксиса я попытался .....Как я могу отправить значение из столбца в сетке Kendo, содержащей кнопку на ClientTemplate?

column 
.Template(@<text></text>).Width(90) 

.ClientTemplate("#= MyDeleteTemplate(CsvSubmittalID) #"); 

.ClientTemplate("<div style='text-align:center'><a class=ActionbuttonDelete href=\"" + Url.Action("DeleteCsvRow", "Project") + "/#=CsvSubmittalID#\"> [Delete] </a></div>"); 

.ClientTemplate("#= MyDeleteTemplate(CsvSubmittalID)#", <div style='text-align:center'><a class=ActionbuttonDelete [Delete] </a></div>"); 

мне нужна кнопка, чтобы быть в столбце еще пройти идентификатор строки в JavaScript, без использования Url.Action

ответ

1

После борьбы с этим в течение дня и половину я нашел синтаксис для достижения того, что я изначально собирался.

column 
    .Template(@<text></text>).Width(90) 

    .ClientTemplate("<div style='text-align:center; cursor:pointer '><a class=ActionbuttonDelete onclick=\"MyDeleteTemplate('#=CsvSubmittalID#')\">[Delete]</a></div>"); 

И следующий мой шаблон, который послал вызов Ajax ....

function MyDeleteTemplate(CsvSubmittalID) 
{ 
    $.ajax({ 
     url: '@Url.Action("DeleteCsvRow", "Project")', 
     type: "POST", 
     data: ({ id : CsvSubmittalID }), 
     dataType: "json" 
    }) 

    $('#CsvGrid').data('kendoGrid').dataSource.read(); 

} 

Считанные() в конце Javascript обновленной Энергосистемы и все работает, как ожидалось.

1

Ниже для меня работает аналогичная функциональность. Я просто оформить вызов через $ .ajax {}

....

.ClientTemplate("<a style='' id='lnkDelete#=CsvSubmittalID#' onclick='lnkDeleteOnClick(#=CsvSubmittalID#)' href='javascript:void(0)'><strong>${FirstName}, ${LastName}</strong</a>") 

...

function lnkDeleteOnClick(CsvSubmittalID){ 
    $.ajax({ 
     type: "GET", 
     url: '@Url.Action("DeleteCsvRow","Project")', 
     datatype: "json", 
     traditional: true, 
     data: {CsvSubmittalID:CsvSubmittalID}, 
     success: function (data, status, xhr) { 
      var grid = $("#myGrid").data("kendoGrid"); 
      grid.dataSource.read();  
     }, 
     error: function (xhr, status, error) { 
      console.log(error);  
     } 

    }); 
} 
+0

Спасибо! Я понял это, но ваш ответ идет точно так же, как и то, что я искал. – MattParra