我怎样才能在Kendo网格中执行自定义列,因此它会重定向到控制器中的操作

问题描述 投票:0回答:1

我有一个网格,其中最后一列必须是一个按钮,重定向到我的控制器中的动作。

我必须更改页面以在Kendo网格中而不是在表格中显示数据。

我遇到的问题是如何将当前项的id传递给操作。

这是旧桌子

<table class="table">
                    <tr>
                        <th>
                            @Html.DisplayNameFor(model => model.Name)
                        </th>
                        <th>
                            @Html.DisplayNameFor(model => model.LastName)
                        </th>
                        <th>
                            @Html.DisplayNameFor(model => model.Email)
                        </th>
                    </tr>

                    @foreach (var item in Model)
                    {
                        <tr>
                            <td>
                                @Html.DisplayFor(modelItem => item.Name)
                            </td>
                            <td>
                                @Html.DisplayFor(modelItem => item.LastName)
                            </td>
                            <td>
                                @Html.DisplayFor(modelItem => item.Email)
                            </td>
                            <!--<td>
                                Html.DisplayFor(modelItem => item.UserName)
                            </td>-->
                            <td>
                                <a asp-action="Edit" asp-route-id="@item.Id" class="btn btn-default btn-xs">Edit</a>  |
                                <a asp-action="Delete" asp-route-id="@item.Id" class="btn btn-default btn-xs">Delete</a>
                            </td>
                        </tr>
                    }

                </table>

这是更新的一个

 @(Html.Kendo().Grid<EndoIS.Models.UserViewModel>()
            .Name("Videos")
            .Columns(columns => {
                columns.Bound(p => p.Name);
                columns.Bound(p => p.LastName);
                columns.Bound(p => p.Email);
            })
            .Pageable(pager => pager
                .Messages(messages => messages.Display("{0} - {1} od {2} vrstic"))
                .Messages(messages => messages.ItemsPerPage("rows per page"))
                .Messages(messages => messages.Empty("No rows"))
                )
            .Sortable()
            .Pageable(pageable => pageable
                .Refresh(true)
                .PageSizes(true)
                .ButtonCount(5))
            .DataSource(datasource => datasource
                 .Ajax()
                 .ServerOperation(false)
                 .Read(read => read.Action("List", "UserAdmin"))
            )
)

现在,我如何将旧表中的最后一列添加到此网格中,以便打开同一页面。

html asp.net-core kendo-grid
1个回答
0
投票

我找到了一种使用#= Id #访问当前模型的简单方法,所以我这样做了

columns.Bound(p => p.Email).ClientHeaderTemplate("Edit").ClientTemplate(@"<a href='" + Url.Action("Edit") + "/#= Id #' class='btn btn-info btn-xs'>Edit</a>").Width(100);

可能有更好的方法来做到这一点,但我这样做,它的工作原理

© www.soinside.com 2019 - 2024. All rights reserved.