zoukankan      html  css  js  c++  java
  • jquery Flexigrid只选择一行,增加双击事件,获取数据库ID

    Flexigrid(http://www.flexigrid.info/)总体来说还是一款不错的jquery的表格插件,但是速度上面还有些卡,希望官方有更好的解决方法;
    前段时间做项目,用到了Flexigrid,遇到了一些问题,如:1怎样才能选中一行,而不是多行;2怎么双击一个表格添加一个事件,如打开一个明细页面;3、如何获取数据库ID。
    1、Flexigrid怎样才能选中一行,而不是多行
    Flexigrid默认是可以选择多行的,这样一来,在删除一条记录的时候就有些麻烦,必须把选择的多行改为一样,有些不便;


     


    那么就打开“flexigrid.js”页面找到:
    $('tbody tr',g.bDiv).each(function (){$(this).click(
    function (e) {
    .............

    }
    )}

    把 “.............”部分改为:
    var obj = (e.target || e.srcElement); if (obj.href || obj.type) return true;
    $('tbody tr.trSelected',g.bDiv).each(function(i){$(this).toggleClass('trSelected');});
    $(this).toggleClass('trSelected');

     保存试试,是不是就只能选择一行了;

    2、Flexigrid怎么双击一行添加一个事件,如打开一个明细页面
    一般人操作电脑习惯都是双击一行就能打开一个页面,但是Flexigrid默认并没有这功能,那么怎么才能加上这功能,修改如下:

    打开“flexigrid.js”页面找到:
    addRowProp: function(){
    $('tbody tr',g.bDiv).each
    (function ()
    {
    $(this)

    添加一个“dblclick”事件,示列代码如下:
    .dblclick(
    function(e){//添加双击事件
      tabid=$(this).find("td:first").eq(0).text() 
       fdbclick(tabid);
    }
    )

    那么 fdbclick函数就是双击所要触发的事件了

    3、Flexigrid获取数据库ID
    Flexigrid获取ID很不方面,官方提供的列子是把ID放在第一列的隐藏列中,通过$(this).find("td:first").eq(0).text() 来获取的,这样就必须浪费一列,如果再有cid,fid等等就得依次放在隐藏列中,不怎么方面;下面我们来看看有没什么更好的办法,不放在隐藏列中也能获取ID。

    我们打开“flexigrid.js” 页面我们会发现有“if (row.id) tr.id = 'row' + row.id;”这么一句,意思对每一行进行赋值ID,
    我们打开服务端语言,有这么一句

    //以下为PHP代码
    $json .= "id:'".$r['id']."',";
    $json .= "cell:['".$r['id']."'";
     
    那么你应该知道,这个id的用处了吧,那么我们只要在生成的页面用:

    id=$('.trSelected', grid).attr("id").replace("row","");

    就能获得ID了,而不用再用一个隐藏列来获取了

    贴张图:

    有些真实数据模糊了,呵呵

    我把我改写后的”flexigrid.js“,上传下,供大家下载,可能不是最新版本,大家想要最新版本可以去官方http://www.flexigrid.info/

  • 相关阅读:
    CNN5 调用 C实现pool2d im2col col2im
    CUDA学习3 Max pooling (python c++ cuda)
    CUDA学习2 基础知识和Julia示例
    CUDA学习1 在Visual Studio和CodeBlocks上配置
    线性搜索
    CNN4 参数优化
    CNN3 im2col
    CNN2 多层卷积
    爬虫:Scrapy8
    爬虫:Scrapy7
  • 原文地址:https://www.cnblogs.com/chengulv/p/2228394.html
Copyright © 2011-2022 走看看