Kendo Grid自定义按钮调用Javascript函数

时间:2013-04-04 18:00:30

标签: javascript model-view-controller kendo-ui kendo-grid

如何将自定义按钮绑定到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>
}

1 个答案:

答案 0 :(得分: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 =&gt; ...)。Title(&#34; Actions&#34;); 不需要JavaScript。