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 に答える