Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在kendo网格列模板中将动态值指定给全局变量_Javascript_Jquery_Kendo Grid - Fatal编程技术网

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