首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >KnockOut koGrid :如何在KoGrid中进行行双击和链接?

KnockOut koGrid :如何在KoGrid中进行行双击和链接?
EN

Stack Overflow用户
提问于 2014-02-21 10:01:56
回答 1查看 854关注 0票数 1

更新:

请检查并建议如何在koGrid中使用列值作为链接,以及如何同时在Kogrid中使用双击功能,即年龄列作为链接,单击该链接时可以将我带到home/about页面,当我双击任何行时,它会带我到home/Index页面。

这里:http://jsfiddle.net/LRY2U/

代码语言:javascript
复制
 {
field: "age", 
displayName: "Age",
cellTemplate: "content"
 }

谢谢普里扬卡

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-24 09:36:12

问题是行选择处理鼠标单击,因此我们希望确保不允许单击事件传播到行选择处理程序,这可以使用event.stopPropagation方法进行。

为此,我首先更改了ItemViewModel构造函数,以执行实际导航。

代码语言:javascript
复制
function ItemViewModel(name, age) {
    var self = this;

    self.name = name;
    self.age = age;
    self.ageUrl = "/Home/Index/" + self.age;
    function navigateTo(url){
        // Before navigation we want to stop propagation of the event to avoid 
        // other handlers to handle the click and replace the url (this will 
        // ensure the row selection isn't triggered by clicking the age link)
        event.stopPropagation();
        window.location.href = url;
    }
    self.navigateToName = function(){
        navigateTo("/Home/Index?Name=" + self.name);
    };
    self.navigateToAge = function(){
        navigateTo(self.ageUrl);
    };
};

然后,我更新了您的单元格模板,以使用ItemViewModel对象上的属性和方法。

代码语言:javascript
复制
cellTemplate: "<a data-bind='click: $parent.entity.navigateToAge, attr: {href: $parent.entity.ageUrl}, text: $parent.entity.age'></a>"

最后,还更新了行选择处理程序,以便在ItemViewModel对象上使用方法。

代码语言:javascript
复制
afterSelectionChange: function (rowItem, event) {
    if (event.type == 'click') {
        rowItem.entity.navigateToName();
    }
}

做完这些更改后,一切都对我很好(如果我把它放在自定义的html页面中,因为jsfiddle对导航不太感兴趣)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21931065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档