【问题标题】:How could I do a custom column in Kendo grid, so it redirects to a action in a controller我怎么能在剑道网格中做一个自定义列,所以它重定向到控制器中的一个动作
【发布时间】:2025-12-23 11:10:12
【问题描述】:

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

我必须更改页面以在 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】:

我找到了一种使用#= 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);

可能有更好的方法可以做到这一点,但我就是这样做的,而且效果很好

【讨论】:

    最近更新 更多