Ajax.BeginForm 在 Kendo 网格列之外呈现
Ajax.BeginForm rendered outside of Kendo Grid column
我遇到 Kendo 网格 Columns.Template 和 Ajax.BeginForm 的奇怪问题。
我有这样的代码
@(Html.Kendo().Grid(Model)
.Name("Monitoring")
.Columns(columns =>
{
columns.Template(@<text>
@using (Ajax.BeginForm("HardReboot", "Admin", new { id = item.Id }, new AjaxOptions
{
OnSuccess = "Loaded",
OnFailure = "Failure"
}))
{
<input class="btn btn-default" type="submit" value="Hard Reboot" />
}
</text>).Width(30);
}
))
呈现页面时,表单 html 标记呈现在列外,如下所示
<form action="/admin/hardreboot?id=1185158" data-ajax="true" data-ajax-failure="Failure" data-ajax-success="Loaded" id="form0" method="post"></form>
<div class="k-widget k-grid" id="Monitoring"><table><colgroup><col style="width:30px" /></colgroup><thead class="k-grid-header"><tr><th class="k-header" scope="col"><span class="k-link"> </span></th></tr></thead><tbody><tr><td>
<input class="btn btn-default" type="submit" value="Hard Reboot" />
</td></tr></tbody></table></div>
知道为什么吗?
不知道,但您可以为此使用自定义命令。
http://demos.telerik.com/kendo-ui/grid/custom-command
自定义命令呈现按钮(您可以添加样式)并在按下时调用 javascript 函数。在此功能中,您可以执行 ajax 请求。
使用 jQuery.ajax()
进行手动 ajax 请求而不是放置表单,因为嵌套表单会导致问题
我遇到 Kendo 网格 Columns.Template 和 Ajax.BeginForm 的奇怪问题。
我有这样的代码
@(Html.Kendo().Grid(Model)
.Name("Monitoring")
.Columns(columns =>
{
columns.Template(@<text>
@using (Ajax.BeginForm("HardReboot", "Admin", new { id = item.Id }, new AjaxOptions
{
OnSuccess = "Loaded",
OnFailure = "Failure"
}))
{
<input class="btn btn-default" type="submit" value="Hard Reboot" />
}
</text>).Width(30);
}
))
呈现页面时,表单 html 标记呈现在列外,如下所示
<form action="/admin/hardreboot?id=1185158" data-ajax="true" data-ajax-failure="Failure" data-ajax-success="Loaded" id="form0" method="post"></form>
<div class="k-widget k-grid" id="Monitoring"><table><colgroup><col style="width:30px" /></colgroup><thead class="k-grid-header"><tr><th class="k-header" scope="col"><span class="k-link"> </span></th></tr></thead><tbody><tr><td>
<input class="btn btn-default" type="submit" value="Hard Reboot" />
</td></tr></tbody></table></div>
知道为什么吗?
不知道,但您可以为此使用自定义命令。
http://demos.telerik.com/kendo-ui/grid/custom-command
自定义命令呈现按钮(您可以添加样式)并在按下时调用 javascript 函数。在此功能中,您可以执行 ajax 请求。
使用 jQuery.ajax()
进行手动 ajax 请求而不是放置表单,因为嵌套表单会导致问题