Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.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 如何使用FlexGrid处理行onclick事件?_Javascript_Jquery_Flexigrid - Fatal编程技术网

Javascript 如何使用FlexGrid处理行onclick事件?

Javascript 如何使用FlexGrid处理行onclick事件?,javascript,jquery,flexigrid,Javascript,Jquery,Flexigrid,我的flexigrid已设置好。我只需要一个事件,当用户单击一行时调用该事件。从那里,我将根据该行中包含的数据将用户发送到另一个页面。但我似乎找不到任何关于如何做到这一点的例子 我正在寻找一个关于如何使用FlexGrid处理行onclick事件的清晰示例 我还对在这种情况下可以使用的任何其他javascript表框架感兴趣。我已经看了一眼,它看起来可能是一个更好的选择(而且项目似乎更活跃)这有帮助吗? 您可以使用firebug查看它,以查看事件的链接位置。 请记住,flexigrid.js文件与

我的flexigrid已设置好。我只需要一个事件,当用户单击一行时调用该事件。从那里,我将根据该行中包含的数据将用户发送到另一个页面。但我似乎找不到任何关于如何做到这一点的例子

我正在寻找一个关于如何使用FlexGrid处理行onclick事件的清晰示例

我还对在这种情况下可以使用的任何其他javascript表框架感兴趣。我已经看了一眼,它看起来可能是一个更好的选择(而且项目似乎更活跃)

这有帮助吗? 您可以使用firebug查看它,以查看事件的链接位置。
请记住,flexigrid.js文件与正式项目中的文件稍有不同。

在flexigrid的初始设置中,将属性process:procMe添加到列模型中。例如:

colModel : [
    { display: 'Request', name : 'id', process: procMe }
]
然后创建一个回调:

function procMe( celDiv, id ) {
    $( celDiv ).click( function() {
        alert( id );
    });
}

更好的解决方案

function domainEdit(domainID) {
    alert('domainID' + domainID);
}
将流程添加到colModel对我不起作用

colModel : [
{ display: 'Request', name : 'id', process: procMe }
]
以下是我正在使用的解决方案:

var gridRows = $("#data-grid tbody tr");

gridRows.click(function (event) {
  displaySelectedItem($(this).attr('id').substr(3));
  return false; //exit
});

柔性网格柱作为链接

colModel: [
        {
            display: 'DomainName', name: 'DomainName', width: 180, 
            sortable: true, align: 'left', 
            process: function (col, id) 
                     {
                       col.innerHTML = "<a href='javascript:domainEdit(" + id + ");' 
                                   id='flex_col" + id + "'>" + col.innerHTML + "</a>";
                     }
        }]

我认为这个变种比whoabackoff好一点

$('.TableName').click(function(event){
        $('.res').html('dbl');
        alert('dbl');
});

我变得“假”。我将警报更改为警报(this.innerHTML)以获取行的值;参考:值得注意的是,事件只会在单击特定列(celDiv)而不是整行时触发。这太棒了!我不知道过程函数的可能性,在我的成功函数中做了这一切。也很有效,但你的方法更容易理解,谢谢!这将有效地为整行定义一个操作,而FlexGrid流程允许您为每列定义一个操作。另外,您在jquery中指定的DOM导航在传统浏览器中可能会非常昂贵(不确定您是否在意)@zaitsman感谢您的评论。我使用flexgrid的方式希望用户能够单击行中的任何位置。我从来没有想过性能问题,无论如何,谢谢你在这方面给我的建议,我将不得不运行一些测试。