如何在 Kendo 网格中显示二维码?
How to show Qr Code in Kendo Grid?
这是我的 div 但它在 kendo 网格之外
<div>
<div id="qrUrl"></div>
</div>
这是我的 kendo 网格字段
columns: [
{
field: "Id",
},
{
title: "QrCode",
width: 300,
template: function(dataItem)
{
$(#Qrurl).kendoQRCode({
value: "www.google.com"+ dataItem.Id,
errorCorrection: "M",
size: 120,
border: {
color: "#000000",
width: 5
}
});
}
在这种情况下,我的 Qrcode 使用 uniq (url+id ) 生成了外部网格
但我想要我的 kendo 网格中的所有二维码。
我尝试了这个代码和另一个代码,但仍然没有达到标准。
template: function(dataItem)
{
$('<div></div>')
.kendoQRCode({
value: "www.google.com"+ dataItem.Id,
errorCorrection: "M",
size: 120,
border: {
color: "#000000",
width: 5
}
});
}
如果当时我尝试使用 div ID,我会根据要求获得二维码,但在网格之外,我想在我的网格中完成这件事。
请帮助我。
谢谢你的提前。
模板函数需要 return 将要使用的 HTML 的字符串。我会让模板在网格单元格中创建一个空的 DIV,其中包含 class="QRME" 和 id 的数据属性。然后在 grid 的 dataBound 事件中,循环遍历所有 QRME div,获取 id 并创建 QR 码:
$("#grid").kendoGrid({
columns: [ {
field: "Id",
}, {
title: "QrCode",
width: 300,
template: function(dataItem) {
return "<div class='QRME' data-id='" + kendo.htmlEncode(dataItem.Id) + "'></div>";
}
}],
dataSource: [ { Id: "1" }, { Id: "2" }, { Id: "3" } ],
dataBound: function(e) {
$("div.QRME").each(function(idx){
$(this).kendoQRCode({
value: "www.google.com"+ $(this).data("id"),
errorCorrection: "M",
size: 120,
border: {
color: "#000000",
width: 5
}
});
});
}
});
工作DEMO
我无法使用 dataBound,因此我一直在寻找适用于模板的解决方案。
首先,我制作了一个 div 实例并将二维码放在那里,然后 return outerHTML.
template: function(dataItem) {
return jQuery("<div class='qrcode'></div>")
.kendoQRCode({
value: kendo.htmlEncode(dataItem["Id"]),
errorCorrection: "M",
size: 60,
border: {
color: "#000",
width: 1
}
}).html();
}
工作DEMO
这是我的 div 但它在 kendo 网格之外
<div>
<div id="qrUrl"></div>
</div>
这是我的 kendo 网格字段
columns: [
{
field: "Id",
},
{
title: "QrCode",
width: 300,
template: function(dataItem)
{
$(#Qrurl).kendoQRCode({
value: "www.google.com"+ dataItem.Id,
errorCorrection: "M",
size: 120,
border: {
color: "#000000",
width: 5
}
});
}
在这种情况下,我的 Qrcode 使用 uniq (url+id ) 生成了外部网格 但我想要我的 kendo 网格中的所有二维码。
我尝试了这个代码和另一个代码,但仍然没有达到标准。
template: function(dataItem)
{
$('<div></div>')
.kendoQRCode({
value: "www.google.com"+ dataItem.Id,
errorCorrection: "M",
size: 120,
border: {
color: "#000000",
width: 5
}
});
}
如果当时我尝试使用 div ID,我会根据要求获得二维码,但在网格之外,我想在我的网格中完成这件事。
请帮助我。
谢谢你的提前。
模板函数需要 return 将要使用的 HTML 的字符串。我会让模板在网格单元格中创建一个空的 DIV,其中包含 class="QRME" 和 id 的数据属性。然后在 grid 的 dataBound 事件中,循环遍历所有 QRME div,获取 id 并创建 QR 码:
$("#grid").kendoGrid({
columns: [ {
field: "Id",
}, {
title: "QrCode",
width: 300,
template: function(dataItem) {
return "<div class='QRME' data-id='" + kendo.htmlEncode(dataItem.Id) + "'></div>";
}
}],
dataSource: [ { Id: "1" }, { Id: "2" }, { Id: "3" } ],
dataBound: function(e) {
$("div.QRME").each(function(idx){
$(this).kendoQRCode({
value: "www.google.com"+ $(this).data("id"),
errorCorrection: "M",
size: 120,
border: {
color: "#000000",
width: 5
}
});
});
}
});
工作DEMO
我无法使用 dataBound,因此我一直在寻找适用于模板的解决方案。 首先,我制作了一个 div 实例并将二维码放在那里,然后 return outerHTML.
template: function(dataItem) {
return jQuery("<div class='qrcode'></div>")
.kendoQRCode({
value: kendo.htmlEncode(dataItem["Id"]),
errorCorrection: "M",
size: 60,
border: {
color: "#000",
width: 1
}
}).html();
}