【发布时间】:2019-09-13 01:50:41
【问题描述】:
我可以将 javascript 函数绑定到不带参数的事件,并通过以下方式接收事件对象:
columns.Command(command => command.Custom("Edit").Click("editDetails")).Width(1);
那么editDetails 看起来像:
function editDetails(e)
{
e.preventDefault();
//code goes here
}
如果我不需要任何参数,这很好,我得到了事件对象e,如果需要我可以使用它。
如果我使用这样的匿名函数,我也可以传入参数:
.Events(e => e.DataBound("function() { onGridDataBound('#MyGrid') }"))
onGridDataBound 看起来像这样:
function onGridDataBound(gridId)
{
//code goes here
}
我一直想不通的是如何传递参数并仍然接收事件对象。
例如,我如何修改 Events 语句,使其同时发送 gridId 和事件对象?
这样我可以做类似的事情:
function onGridDataBound(e, gridID)
{
e.preventDefault();
var dataItem = this.dataItem($(e.currentTarget).closest('tr'));
var grid = $(gridID).data('kendoGrid');
}
【问题讨论】:
-
您可以从事件对象中获取网格 id:
e.sender.element[0].id。 dojo.telerik.com/@sg53719/uqemAqUR -
@SteveGreene 我为示例简化了一些事情。我实际上需要传递 6 个参数,其中一些不是 UI 元素的派生,不会包含在事件对象中。
-
好的。如果您想在数据模型/UI 之外访问某些字段,那么另一种技术是创建可以在脚本中访问的隐藏输入。
$('#myInput').val()
标签: javascript asp.net-mvc kendo-ui kendo-asp.net-mvc