将模型从Kendo Mvc UI网格传递到javascript函数
嗨,我正在使用剑道MVC UI网格。这就是它的样子:将模型从Kendo Mvc UI网格传递到javascript函数,javascript,kendo-grid,Javascript,Kendo Grid,嗨,我正在使用剑道MVC UI网格。这就是它的样子: @(Html.Kendo().Grid<TegelCheckerModel>() .Name("Grid") .Columns(columns => { columns.Bound(p => p.TegelNaam); columns.Bound(p => p.TegelId).
@(Html.Kendo().Grid<TegelCheckerModel>()
.Name("Grid")
.Columns(columns =>
{
columns.Bound(p => p.TegelNaam);
columns.Bound(p => p.TegelId).Sortable(false).Filterable(false).ClientTemplate("<span class='iconBtn raadplegen' onclick=\"javascript:showDetails('#= TegelNaam #')\" />").Title("");
})
.AutoBind(true)
.Pageable()
.Sortable()
.Filterable()
.Events(e => e.DataBound("gridDataBound "))
.DataSource(dataSource => dataSource
.Ajax() //Or .Server()
.Read(read => read.Action("GetTegels", "TegelChecker")
.Data("getAlvNummerAndVoorWie"))
)
)
@(Html.Kendo().Grid())
.名称(“网格”)
.列(列=>
{
columns.Bound(p=>p.TegelNaam);
columns.Bound(p=>p.TegelId).Sortable(false).Filterable(false).ClientTemplate(“”).Title(“”);
})
.AutoBind(真)
.Pageable()
.Sortable()
.可过滤()
.Events(e=>e.DataBound(“gridDataBound”))
.DataSource(DataSource=>DataSource
.Ajax()//或.Server()
.Read(Read=>Read.Action(“GetTegels”、“TegelChecker”)
.数据(“getAlvNummerAndVoorWie”))
)
)
有一列显示可单击的图像。
此时,我可以从单击图像的行中传递“Tegelnaam”。
这是可行的,但我希望传递单击项目所在行的全部数据。我该怎么做呢?根据我之前回答的问题的答案 有关工作示例,请参见链接: 从以下位置修改代码:
.ClientTemplate("<span class='iconBtn raadplegen' onclick=\"javascript:showDetails('#= TegelNaam #')\" />")
然后javascript函数可以执行以下操作:
function generateLink(data)
{
var ret = '';
if(data.StatusDesc === '' && data.newStatusDesc !== '' && data.newStatusDesc !== null)
{
var linkElement = 'javscript:showDetails(' + JSON.stringify(data) + ')';
ret = "<span class='iconBtn raadplegen' onclick='" + linkElement + "'>" + data.newStatusDesc + '</span>';
console.log(ret);
}
else
{
ret = data.StatusDesc;
}
return ret;
}
我花了一点时间让它工作(并尝试一个错误),但这似乎是最明智的方式(在我看来) 只需传递对象
数据
,而不仅仅是TegelNaam
,例如,将其从#=TegelNaam更改为=data#
,显然删除了围绕此的引号item@DavidShorthose:将其更改为数据无效。我的html是这样的:对不起。看看我昨天给某人的这个答案,作为你可能的解决方案:@davidshorthes:好的,现在它似乎起作用了。因为当我的页面被加载时,我会进入dosomething函数。但是当我点击的时候,我没有进入它。当然,当我的页面加载时,它不应该出现在函数中。这是我现在的代码:columns.Bound(p=>p.TegelId).Sortable(false).Filterable(false).ClientTemplate(“”).Title(“”)@DavidShort我生成的HTML如下所示:
function generateLink(data)
{
var ret = '';
if(data.StatusDesc === '' && data.newStatusDesc !== '' && data.newStatusDesc !== null)
{
var linkElement = 'javscript:showDetails(' + JSON.stringify(data) + ')';
ret = "<span class='iconBtn raadplegen' onclick='" + linkElement + "'>" + data.newStatusDesc + '</span>';
console.log(ret);
}
else
{
ret = data.StatusDesc;
}
return ret;
}
function showDetails(status){
console.log(status);
console.log("Status is::"+ status);
alert("Status is::" + status.newStatusDesc);
return true;
}