Kendo ui 如何在剑道网格列模板中将参数传递给javascript?
我有一个剑道网格和列模板。我尝试将当前行中的值作为javascript函数的参数传递。我的代码:Kendo ui 如何在剑道网格列模板中将参数传递给javascript?,kendo-ui,parameter-passing,kendo-grid,Kendo Ui,Parameter Passing,Kendo Grid,我有一个剑道网格和列模板。我尝试将当前行中的值作为javascript函数的参数传递。我的代码: { field: "CrmTaskId", title: "Crm ", template: '<a href="javascript:hrefTest(#=CrmTaskId#);" ># if( CrmTaskId==null) {#<span><span># } else {#<span>#: CrmTaskId#<span&
{
field: "CrmTaskId",
title: "Crm ",
template: '<a href="javascript:hrefTest(#=CrmTaskId#);" ># if( CrmTaskId==null) {#<span><span># } else {#<span>#: CrmTaskId#<span>#} #</a>'
}
{
字段:“CRMTAidy”,
标题:“客户关系管理”,
模板:“”
}
hrefTest
是带有一个参数的javascript函数。但它不起作用。有什么想法吗?我试过使用您的代码,但无法重现此问题。请创建新的HTML/CSHTML页面并进行检查
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<link href="http://cdn.kendostatic.com/2014.1.318/styles/kendo.common.min.css" rel="stylesheet" />
<link href="http://cdn.kendostatic.com/2014.1.318/styles/kendo.default.min.css" rel="stylesheet" />
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://cdn.kendostatic.com/2014.1.318/js/kendo.all.min.js"></script>
</head>
<body>
<div id="grid"></div>
<script>
var movies = [
{ "CrmTaskId": 1, "rating": 9.2, "year": 1994, "title": "The Shawshank Redemption"},
{ "CrmTaskId": 2, "rating": 9.2, "year": 1972, "title": "The Godfather"},
{ "CrmTaskId": null, "rating": 9, "year": 1974, "title": "The Godfather: Part II" },
{ "CrmTaskId": '', "rating": 9.9, "year": 1874, "title": "The Godmother: Part III" }
];
function hrefTest(CrmTaskId)
{
alert("CrmTaskId is: " + CrmTaskId);
}
$(document).ready(function () {
$("#grid").kendoGrid({
dataSource: {
data: movies,
pageSize: 10
},
groupable: true,
sortable: true,
pageable: {
refresh: true,
pageSizes: true
},
columns: [{
field: "CrmTaskId",
title: "Crm"
}, {
field: "title",
title: "title"
},
{
template: '<a href="javascript:hrefTest(#=CrmTaskId#);" ># if( CrmTaskId==null) {#<span><span># } else {#<span>#: CrmTaskId#<span>#} #</a>'
}
]
});
});
</script>
</body>
</html>
试验
var电影=[
{“CrmTaskId”:1,“评级”:9.2,“年份”:1994,“标题”:“肖申克的救赎”},
{“CrmTaskId”:2,“评级”:9.2,“年份”:1972,“头衔”:“教父”},
{“CrmTaskId”:空,“评级”:9,“年份”:1974,“标题”:“教父:第二部分”},
{《教母:第三部分》}
];
功能hrefTest(CRMTASK)
{
警报(“CRMTAidy为:“+CRMTAidy”);
}
$(文档).ready(函数(){
$(“#网格”).kendoGrid({
数据源:{
资料来源:电影,
页面大小:10
},
分组:对,
可排序:是的,
可分页:{
刷新:是的,
页面大小:正确
},
栏目:[{
字段:“CRMTAidy”,
标题:“客户关系管理”
}, {
字段:“标题”,
标题:“标题”
},
{
模板:“”
}
]
});
});
请尝试下面的代码片段。可以这样做
.ClientTemplate("<a href='javascript: void(0);'
onclick=\"return YourJSFunction('#= OpportunityUrl #');\">#= OpportunityName #</a>")
.ClientTemplate(“”)
这是列定义的一部分,所以它所说的是…创建OpportunityName
单击并传入OpportunityUrl#=Field#
是从模型中提取值的语法。使用此语法:
{
field: "Field",
editable: true,
title: "Title",
template: showRelatedLink,
allownull: true,
width: 100
}
然后在你的函数中:
function showRelatedLink(container, options)
{
var yourVariable = container.YourField;
}
您也可以将字段传递给如下函数: 网格: 功能:
function product_type_to_name(product_type_id) {
console.log(product_type_id);
var name = "";
// convert ID to name
return name;
}
我试过这个
{
字段:“DisplayChangedFrom”,
标题:“来自”,
模板:“#=generateTemplate(DisplayChangedFrom)#
},
然后是函数
函数生成器模板(项){
var html=“”;
if(items!==null&&items.length>0){
对于(变量x=0;x”;
html+=项目[x];
html+=“”;
}
}
html+=“
”;
返回html;
}
hrefTest(CrmTaskId)或hrefTest(data.CrmTaskId)不工作请查看此[post][1]……[1]:您的代码正在运行。此剑道网格问题。您不能使用与模板相同列的值。您不能在一列中同时添加字段和模板。因为它们与BoundColumn和TemplateColumn相同。如果需要,请使用ClientTemplate。我不使用mvc帮助程序。仅使用html和javascript。如何在jav中定义客户端模板ascript?您是否尝试将ClientTemplate()
中的内容放置到template:
参考评论中的此链接:您好,此帖子似乎没有提供问题的答案。请编辑您的答案并对您的代码进行解释。
function product_type_to_name(product_type_id) {
console.log(product_type_id);
var name = "";
// convert ID to name
return name;
}