0

如何将自定义按钮绑定到 JavaScript 函数?我在网格中的每一行上都看到了按钮,但是单击按钮会刷新页面,并在当前 URL 后附加一个“/0”。它不调用 JavaScript 函数“RedirectCreateReport”。这是我的剑道网格:

                @(Html.Kendo().Grid(Model)
                  .Name("MyGrid")
                  .Columns(columns =>
                               {
                                   columns.Bound(p => p.Name).Title("Name");
                                   columns.Bound(p => p.Description).Title("Description");
                                   columns.Command(command =>
                                       {
                                           command.Custom("CreateReport").Text("Submit Report").Click("RedirectCreateReport");
                                       }).Title("Actions");
                               })
                  ...
                  .ColumnMenu()
                  .Groupable())

@section scripts {
    <script type="text/javascript">
        $(document).ready(function () {
            $(".RedirectCreateReport").click(function () {
                alert("a");
                var item = $("#MyGrid").data("kendoGrid").dataItem($(this).closest("tr"));
                window.location.href = "/Report/Create?P=" + item;
            });
        });
    </script>
}
4

1 回答 1

1

我找到了问题的答案:放弃自定义按钮。使用 ActionLink,样式为按钮:

 columns.Template(
   p => @Html.ActionLink(
     "New Report", 
     "Create", 
     "Report", 
     new { ID = p.Id.ToString() }, 
     htmlAttributes: 
     new { @class = "k-button k-button-icontext k-grid-NewReport" }
     ).ToHtmlString()
   );

此代码替换行 columns.Command(command => ...).Title("Actions"); 不需要 JavaScript。

于 2013-04-06T20:56:23.090 回答