我正在尝试使用command.custom来处理网址。我有command.Custom("Tasks");
,它会创建按钮。但我无法弄清楚如何让它指向这个网址../../OBClientSetupTasks/Index/@item.SetupID
我试图让它做一个.action并点击控制器并查看但它返回一个不支持的异常
command.Custom("Tasks").Action("Index", "OBClientSetup");
我似乎无法识别@item.SetupID
。 item通常来自foreach,但在这种情况下,我看不到foreach会去哪里。
编辑:
添加完整网格
@(Html.Kendo().Grid<XXX_2_0_OBOE.OpenAccess.OBClientSetup>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(obcs => obcs.ProfileName);
columns.Bound(obcs => obcs.Default).ClientTemplate("#= Default ? 'Yes' : 'No' #");
columns.Bound(obcs => obcs.EEFinalize).ClientTemplate("#= EEFinalize ? 'Yes' : 'No' #");
columns.Bound(obcs => obcs.AllowOutsideCodes).ClientTemplate("#= EEFinalize ? 'Yes' : 'No' #");
columns.Bound(obcs => obcs.Completed).ClientTemplate("#= Completed ? 'Yes' : 'No' #");
columns.Command(command =>
{
command.Custom("Tasks").Action("Index", "OBClientSetup", new { SetupID = Model.SetupID });
command.Edit();
command.Destroy().HtmlAttributes(new { @class = "onboard-delete " });
});
})
.ToolBar(toolbar =>
{
toolbar.Template(@<text>
<div class="toolbar">
<div class="row">
<div class="col-md-3 pull-right">
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-search" aria-hidden="true"></span></span>
<input type="text" class="form-control" id='FieldFilter' placeholder="Search Profile Name">
</div>
</div>
</div>
</div>
</text>);
})
.HtmlAttributes(new { @class = "table-responsive" })
.Groupable()
.Pageable()
.Sortable()
.Editable(editable => editable.Mode(GridEditMode.InLine))
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action("OB2_ClientProfiles", "OB"))
.PageSize(5)
.Update(update => update.Action("EditingInline_Update", "OB"))
.Destroy(update => update.Action("EditingInline_Destroy", "OB"))
.Model(model => model.Id(obcs => obcs.SetupID))
)
)
模特
public partial class OBClientSetup
{
private int _setupID;
public virtual int SetupID
{
get
{
return this._setupID;
}
set
{
this._setupID = value;
}
}
这个想法是这样他们可以点击按钮并发送到OBClientSetupTasks/Index/1
或者他们的ID
答案 0 :(得分:0)
要以这种方式使用Grid模型,您可能需要这样的东西:
创建一个JavaScript函数来处理click事件。在这里你可以获取SetupID。我不知道你的控制器的动作是什么,但有一些选择。
如果要更改为“索引”页面,请执行以下操作:
<script>
function SetupTasks(e) {
e.preventDefault();
var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
window.location.href = '@Url.Action("Index", "OBClientSetup")' + "/" + dataItem.SetupID;
}
</script>
或者,执行一些像这样的ajax请求:
<script>
function SetupTasks(e) {
e.preventDefault();
var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
windows.location.href = '@Url.Action("Index", "OBClientSetup")',
type: "POST",
dataType: "json",
data: { SetupID: dataItem.SetupID },
success: function (data) {
// Handle return value
}
});
}
</script>
在你的网格中指定你的命令按钮:
command.Custom("Tasks").Click("SetupTasks");