1

我正在尝试将网格中的行中的 ID 发送到 ClientTemplate。我有一个带有删除按钮的列,我想将单击的行的 ID 发送到 ClientTemplate,以便我可以通过 AJAX 调用来访问控制器。我知道我可以通过 "Url.Action("Action","Controller")" 做到这一点,但我试图在不刷新页面的情况下做到这一点,因为我正在处理的网格是位于剑道弹出窗口中的子视图. 我尝试了几种语法变体无济于事。任何有助于解决此问题的帮助将不胜感激。以下是我尝试过的一些语法......

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>"); 

我需要按钮在列中但不使用 Url.Action 将行的 ID 传递给 Javascript

4

2 回答 2

2

以下适用于我使用类似的功能。我只是通过 $.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);    
        }

     });
}
于 2015-07-16T18:49:43.097 回答
2

在为此苦苦挣扎了一天半之后,我找到了实现我最初目标的语法。

 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 末尾的 read() 更新了 Grid,一切都按预期工作。

于 2015-07-16T19:05:24.477 回答