javascript - dgrid onDemandGrid 行单击始终获取网格中的最后一行

标签 javascript dojo dgrid

我有一个带有 onDemandGrid 的自定义小部件。我进行数据库调用,数据在回调函数中返回到网格。在回调函数中,我设置了一行 onclick 事件,但问题是无论我单击哪一行,我总是从最后一行获取数据。有谁知道我如何解决此问题以从单击的行中获取数据?

这里是调用数据库并设置回调函数的postCreate函数:

...
postCreate: function () {
            MarkTicketDB.TicketUnMarkedGet(this.dataServiceUrl, 
lang.hitch(this, this.TicketUnMarkedSet)); //this works ok
}

这里是设置onclick事件的回调函数:

TicketUnMarkedSet: function (GridData) {
...

 grid.on(".dgrid-row:click", function (evt) {
                var row = grid.row(evt);
                ID = row.data.ID; //this is always the last record in the grid
                alert(ID);

            });
}

任何帮助将不胜感激

谢谢

最佳答案

为了使单击事件与行关联,该行需要唯一的 ID。如果您的数据未返回每行的 ID,则点击事件将不知道如何区分行,并将返回最新记录,在本例中是表中的最后一条记录。

向数据中的每条记录添加一个id属性,这将解决问题

这是一个 jsfiddle 演示了这一点:http://jsfiddle.net/kagant15/o8mq3ks1/

var storeWithID = new Memory({ data: [
        {"id" : 1, "Name": "John", "Artist": "Rock", "Album": "Roll", "Genre":"Alternative", "Year": "1995"}
    ]});

var storeWithNOid = new Memory({ data: [
    {"Name": "John", "Artist": "Rock", "Album": "Roll", "Genre":"Alternative", "Year": "1995"},
    ]});

关于javascript - dgrid onDemandGrid 行单击始终获取网格中的最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26283286/

相关文章:

带有日期和时间的 Dojo 数据网格

javascript - 使用选择器时出现 Dgrid 错误 -renderedCollection.fetchRange 不是函数

javascript - 更改页面后 DGrid 自行排序

javascript - Socket.io 在选项卡中向特定客户端发送

javascript - 单击时更新 DIV 内容,无需直接知道其 ID

javascript - 更改图像 src 以实现展开/折叠功能(JQ 或 JS)

javascript - 道场 Dgrid : select deselect of header checkbox

Javascript 从数组中获取随机变量,但每个变量只有一次

dojo - 尝试使用dojo动态导航到新页面

javascript - 从 Dojo 转换为 jQuery