Kendo ui 如何在剑道网格列模板中将参数传递给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&

我有一个剑道网格和列模板。我尝试将当前行中的值作为javascript函数的参数传递。我的代码:

{
  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;
}