Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.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
Kendo ui 查找在列中为所有行添加的图像,并将单击事件附加到该图像_Kendo Ui_Kendo Grid - Fatal编程技术网

Kendo ui 查找在列中为所有行添加的图像,并将单击事件附加到该图像

Kendo ui 查找在列中为所有行添加的图像,并将单击事件附加到该图像,kendo-ui,kendo-grid,Kendo Ui,Kendo Grid,我正在使用剑道ui网格。我在网格中动态添加了列。我已经创建了网格中的第一列,如下所示,以便在其中显示图像。我可以看到网格中的图像。 我在数组中添加了列名,并将它们传递给网格中的columns参数 colHeader.push({template:}) colHeader是数组 根据行的数据,单击图像打开的url是不同的。 因此,我看到的唯一选项是循环所有行,找到特定列,然后找到单元格,然后将url附加到图像的单击事件。 希望这能说明问题。请对此提出建议。这可能不是推荐的方法,但我会使用web网格

我正在使用剑道ui网格。我在网格中动态添加了列。我已经创建了网格中的第一列,如下所示,以便在其中显示图像。我可以看到网格中的图像。 我在数组中添加了列名,并将它们传递给网格中的columns参数

colHeader.push({template:})

colHeader是数组

根据行的数据,单击图像打开的url是不同的。 因此,我看到的唯一选项是循环所有行,找到特定列,然后找到单元格,然后将url附加到图像的单击事件。
希望这能说明问题。请对此提出建议。

这可能不是推荐的方法,但我会使用web网格(与MVC包装相反),使用自定义命令列,然后更改命令按钮的样式以使用您的图像

像这样:

 // rest of grid ommitted

        groupable: true,
        sortable: true,
        pageable: {
            input: true,
            refresh: true,
            messages: {
             display: '{2} Items'
            }
        },
        columns: [
        {
          title: ' ',
          field: 'RowId',            
          command: [{ name: 'hmm', text: ' ', click: viewRowInfo }],
        }
     ]);
然后单击处理程序:

function viewRowInfo(e) {
    e.preventDefault();

    //get data item for row
    var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
}
在样式表中:

.k-grid-hmm { border:none !important; width:32px; height: 32px; background-color: transparent !important; background-image: url(icons/your-image.png) !important; }
在网格中使用自定义命令时,Kendo会自动添加一个名为“.k-grid-”+您为命令指定的名称的类


希望这有助于…

为什么需要迭代和修改它,而不是直接用事件生成图像

网格中可能有如下列定义:

columns: [
    // Your other columns
    ...
    {
        title :"Image",
        template: "<img src='my_image.gif'/>"
    },
    // More columns
    ...
];

请参见第三列使用第一种方法,第四列使用第二种方法的示例。

感谢尼尔·希伯特的回复。我会尝试这种方法。谢谢你的回复。我想循环所有行的原因是我已经动态创建了列。现在我可以看到列中的图像。基于行值单击图像时,将打开一个不同的窗口。所以我想要的是循环所有行,找到第一个包含图像的列,然后在单击图像时指定要打开的url。关于如何做到这一点的任何建议。我在专栏中添加了与上面提到的相同的图像。虽然我并没有为模板添加任何类属性,但我在那个里添加了onclick事件本身。第一列是image列,我动态创建了5列。网格中有10行。每次单击图像都需要根据该行中的特定值打开不同的url/窗口。所以我想,如果有任何方法可以循环所有行,找到第一个带有图像的列(列没有标题或标题),然后为它的onclick事件赋值。请在这方面提供帮助。您能否在JSFIDLE/JSBin中向我们展示一些代码,甚至编辑原始问题,以便我们可以提供直接适用于您的问题的答案。关于行迭代和从第一个单元格获取图像,我如何做,然后为其分配单击事件。请参阅中的其他问题和我的答案
columns: [
    // Your other columns
    ...
    {
        title :"Image",
        template: "<img src='my_image.gif' click='javascript:sayHello();'/>"
    },
    // More columns
    ...
];
columns: [
    // Your other columns
    ...
    {
        title :"Image",
        template: "<img src='my_image.gif' class='.ob-image'/>"
    },
    // More columns
    ...
];

// Set handler
$("#grid").on("click", ".ob-image", function() {
    alert("Hi");
});