Javascript 在kendo网格列模板中将动态值指定给全局变量
现在我有了剑道网格代码:Javascript 在kendo网格列模板中将动态值指定给全局变量,javascript,jquery,kendo-grid,Javascript,Jquery,Kendo Grid,现在我有了剑道网格代码: var ds = [ { "ID" : 1, "attach" : "true", "attachment" : "http://www.google.com" }, { "ID" : 2, "attach" : "false", "attachment" : "" }, { "ID" : 3, "attach" : "true", "attachment" : "http://www.wikipedia.com" }, { "ID" :
var ds = [
{ "ID" : 1, "attach" : "true", "attachment" : "http://www.google.com" },
{ "ID" : 2, "attach" : "false", "attachment" : "" },
{ "ID" : 3, "attach" : "true", "attachment" : "http://www.wikipedia.com" },
{ "ID" : 4, "attach" : "false", "attachment" : "" }
];
var $value = "asd";
var grid = $("#grid").kendoGrid({
dataSource: ds,
columns: [
{ field: "ID", Title: "ID", filterable: false, sortable: false, hidden: false },
{ field: "attach", Title: "Attached?", filterable: false, sortable: false, hidden: false},
{
title: "Attachment Link",
template: '#if(attachment != ""){' +
'$value = attachment' +
'#<input type="button" class="info" value="IT WORKS" />' +
'#}else{#' +
'<label>NOPE</label>' +
'#}#',
headerTemplate: "<label> Attachment </label>",
sortable: false,
filterable: false,
width: 100
}
]
}).data("kendoGrid");
//this is where I have been playing around trying to get the value. its not working. Shocker :D
//I changed this part frequently, this is just the latest form I got it in.
$(".info").on("click", function() {
var row = $(this).closest("tr");
var item = grid.dataItem(row);
var show = $value;
alert("The item is:" + show);
});
var-ds=[
{“ID”:1,“attach”:“true”,“attachment”:”http://www.google.com" },
{“ID”:2,“attach”:“false”,“attachment”:“},
{“ID”:3,“附件”:“true”,“附件”:”http://www.wikipedia.com" },
{“ID”:4,“attach”:“false”,“attachment”:“”}
];
var$value=“asd”;
var grid=$(“#grid”).kendoGrid({
数据源:ds,
栏目:[
{字段:“ID”,标题:“ID”,可筛选:false,可排序:false,隐藏:false},
{字段:“附加”,标题:“附加?”,可筛选:false,可排序:false,隐藏:false},
{
标题:“附件链接”,
模板:“#如果(附件!=”){”+
“$value=附件”+
'#' +
“#}否则{#”+
“没有”+
'#}#',
headerTemplate:“附件”,
可排序:false,
可过滤:false,
宽度:100
}
]
}).数据(“kendoGrid”);
//这就是我一直在努力获得价值的地方。它不起作用。令人震惊的是:D
//我经常更换这部分,这只是我得到它的最新形式。
$(“.info”)。在(“单击”,函数(){
var行=$(此).tr;
var item=grid.dataItem(行);
var show=$value;
警报(“项目为:“+显示”);
});
在这里,我检查一行中的一列是否有非空值,如果有,我在那里放置一个按钮
当我尝试将值分配给附件时,('value=attachment'部分),结果是我没有定义,但是如果我像这样将附件括起来:
'#if(attachment != ""){#' +
'#= attachment#' +
'<input type="button" class="info" value="IT WORKS" />'
'#}else{#' +
'<label>NOPE</label>' +
'#}#',
“#如果(附件!=”){#”+
“#=附件”+
''
“#}否则{#”+
“没有”+
'#}#',
我可以打印分配给它的实际链接。当我单击与附件关联的按钮时,如何获取附件的值(单个,而不是列表、数组或其他形式)
这是小提琴:
提前谢谢 是HTML内容的模板
若你们想在html代码中放置一些元素,你们应该使用模板。如我所见,您希望在此模板内执行JS代码。为此,您应该在模板中定义$value=#=附件#
另一个问题是您想做什么,因为当您这样做时,它会在页面加载期间针对每一行执行。因此,$value
的值将始终设置为最后一行
编辑至第一条评论:
应考虑将模板定义为
<input type="button" class="info" value="IT WORKS" onclick="setAttachment('#= attachment#')" />
这是解决这个问题的更合适的方法。按“单击触发器”执行操作,而不是立即执行。我过早地发布了问题,我对其进行了编辑以使其更加清晰。我主要关心的是在单击按钮时获取附件字段中的链接$“值”只是我尝试在警报中打印链接的一种方式。如果我可以只使用最新的一个,我现在还可以,但是我没有定义。好的,我定义了模板,如您所示,并定义了setAttachment()。我还在setAttachment中添加了alert()内容,并在(“click”,function())上删除了$(“.info”)。现在按钮根本没有响应。下面是最新的技巧:将HTML元素中的
单击
更改为onclick
。我的错误。它在JSFIDLE中不起作用,但在我的本地测试页面中起作用。我认为这就是问题所在,但当我尝试“onclick”时,它在小提琴上不起作用,所以我想我应该问问。当我在本地网页上试用时,我会告诉你的。在当地工作。谢谢!
function setAttachment(attachmentValue)
{
$value = attachmentValue;
}