jqgrid 显示链接

2023-11-24

我正在使用 showlink 格式化程序将列作为链接​​。有没有一种方法可以在我单击该函数时调用 javascript 函数。

现在这是我的代码

$("#list").jqGrid(  

{
     url: '..',
    datatype: 'json', //We specify that the datatype we will be using will be JSON
    colNames:['ID', 'User Name'],      
                colModel :[
     {name:'id',index:'id', width:110, sorttype:"string", formatter: 'showlink', formatoptions:{baseLinkUrl:'index.cfm'}},

...

我不想使用 baselinkUrl。我可以在单击 URL 时调用 Javascript 函数吗?当我使用“showlink”格式化程序时,我的表单数据似乎没有发布到下一个屏幕。


您可以通过不同的方式做到这一点。第一个是使用formatter:'showlink'形式如下

formatoptions: {
    baseLinkUrl: 'javascript:',
    showAction: "MyBase.GetAndShowUserData(jQuery('#list'),'",
    addParam: "');"
}

(see my 旧答案了解详情)。它将产生<a>链接到

href="javascript:MyBase.GetAndShowUserData(jQuery('#userlist'),'?id=rowId');"

where rowId将是相应网格行的 id。在你的自定义里面global功能MyBase.GetAndShowUserData你应该剪掉"?id="第二个参数的前缀。这样您就可以访问网格并且知道所选的 ID。

另一种方法是自己编写自定义格式化程序而不是使用formatter:'showlink'.

我认为这两种方法的主要缺点是使用global功能。此外,我更喜欢遵循的概念不引人注目的 JavaScript。所以我可以建议你另一种方式我的答案在 Trirand 论坛上。这个想法是使用预定义的格式化程序showlink以 '#' 作为值href属性和进行绑定 to the click内部链接的事件loadComplete功能:

colModel: [
    { name: 'Subcategory', formatter:'showlink',formatoptions:{baseLinkUrl:'#'}
...
loadComplete: function() {
    var myGrid = $("#list");
    var ids = myGrid.getDataIDs();
    for (var i = 0, idCount = ids.length; i < idCount; i++) {
        $("#"+ids[i]+" a",myGrid[0]).click(function(e) {
            var hash=e.currentTarget.hash;// string like "#?id=0"
            if (hash.substring(0,5) === '#?id=') {
                var id = hash.substring(5,hash.length);
                var text = this.textContent || this.innerText;
                alert("clicked the row with id='"+id+"'. Link contain '"+text+"'");
                location.href="http://en.wikipedia.org/wiki/"+text;
            }
            e.preventDefault();
        });
    }   
}

观看现场演示here。在演示中,如果您单击表格中的“Physics”等文本,将会打开该 urlhttp://en.wikipedia.org/wiki/Physics这将是动态构建的。我添加了一个附加警报,以展示如何另外解码有关行 id 的信息。

UPDATED:看改进后的代码(从性能方面)loadComplete in 另一个答案.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jqgrid 显示链接 的相关文章

随机推荐

  • 如何在 Intellij 15 中降级 Kotlin

    对于我的一个项目 我需要使用 Kotlin 1 0 0 1038 测试版 但要安装它 我可能需要卸载较新版本的 kotlin 但它没有应有的卸载按钮 如何降级 Kotlin IntelliJ IDEA 15 0 4 重要更新 正如 yole
  • 适用于 iOS 的 Google+ SDK 以编程方式添加登录按钮

    至于 G 文档在这里 https developers google com mobile ios sign in 可以使用 XIB 或以编程方式在 UIViewController 中添加登录按钮 我有一个 TableViewContro
  • Asp.net Mvc:列出具有特定属性的控制器上的所有操作

    我试图列出所有控制器及其具有特定属性的操作 以创建动态谷歌站点地图 这样我就可以用属性 标记 某些操作 以便它们显示在站点地图中 Here我找到了如何获得所有控制器 但我不确定如何获取具有特定属性的所有操作 我尝试了 GetMethods
  • Mongoose 检测数据库未准备好

    是否可以检测到数据库未与 Mongoose 一起运行 您只需检查即可判断 mongoose 是否已连接 mongoose connection readyState 0 no 1 yes
  • 同一功能中的“活得不够长”错误

    我希望这段代码能够工作 因为所有绑定都在同一范围内 fn main let mut foobar vec foo let bar bar to string foobar push bar 但我收到此错误 error bar does no
  • 当数组为空时处理错误 9

    我正在编写一个脚本 它将循环遍历 Excel 电子表格并查找所选单元格是否有重复项 如果存在重复项 则该函数将返回一个数组 其中的行是重复的 并创建一条注释来告诉我这些行 我已经能够处理错误 0 但现在当我使用 UBound 函数检查数组中
  • 结构末尾未命名位字段的用途是什么

    我正在学习C C 底漆 我看到一个位域的例子如下 struct box props bool opaque 1 unsigned int fill color 3 unsigned int 4 bool show border 1 unsi
  • 如何从多个列表中获取所有组合? [复制]

    这个问题在这里已经有答案了 我不确定我的问题是否正确 但我不知道如何解释它 所以我有一些清单 比如 a 11 12 b 21 22 c 31 32 我需要得到类似的东西 result 11 21 31 11 21 32 11 22 31 1
  • 查找两个字符变量之间的公共子字符串

    我有两个字符变量 对象名称 我想提取最大的公共子字符串 a lt c blahABCfoo blahDEFfoo b lt c XXABC 123 XXDEF 123 我想要以下结果 1 ABC DEF 这些作为输入的向量应该给出相同的结果
  • 如果 MATLAB 函数返回可变数量的值,我如何才能将所有这些值作为元胞数组获取?

    我正在编写一个函数来从元胞数组中删除一些值 如下所示 function left remove cells item left cells cellfun i isequal item i cells 但是当我运行这个时 left仅具有第一
  • 使用 TeamCity REST API 跟踪构建进度

    我使用 TeamCity 7 0 REST API 来允许开发人员触发自定义构建 我将构建添加到队列中 如下所示 http teamcity httpAuth action html add2Queue buildTypeId name p
  • web.xml 中 servlet 映射的 URL 模式

    我需要在 web xml 中使用此 URL 映射来解决此问题 以创建带有字母 后跟 后跟字母数字字符的任意组合的 URL 我想将 servlet 映射到如下所示 something 代替 something 对不同的 JSP 使用不同的 东
  • Sprite Atlas 和 @2x 图像

    当使用纹理图集 iPhone5 时 我是否必须包含正常和正常 2x尺寸的精灵图像 即使我只针对视网膜设备 我以为我可以只添加 2x 版本 但遗憾的是 当我运行应用程序时 精灵出来的效果比应有的要大得多 接近 4x 当我添加正常版本 1x 图
  • Git 推/拉在 Google Compute Engine 中的 GitLab 上失败

    我已经使用项目界面中的 Click to Deploy 在 Google Compute Engine 上安装了 GitLab 几分钟后部署成功 我可以通过 SSH 连接到该实例 并按预期处理它 我还可以使用 Web 界面登录 GitLab
  • Android 视频视图无法在某些设备上播放 MP4 文件

    在我的应用程序中 我需要播放 SD 卡中的视频 现在它在 Galaxy S Galaxy Tab 2 上工作正常 但在一些中文标签上 如 Giada 它根本无法工作 我有 4 种不同的活动来播放视频 第一个活动播放一个菜单视频 其中包含指向
  • 单击按钮后不触发 Rowcommand

    我已经找到了解决方案 我只是想发布它 这样这可能对某些人有用 这是使用命令的按钮
  • 如何使用 VBA 使用记录集填充组合框

    有一些文献可以在专家交流 and at 泰克共和国关于使用combobox recordset 属性填充Access 表单中的组合框 这些控件通常在控件的 rowsource 属性中填充 SELECT 字符串 引用应用程序客户端上可用的表或
  • 在PetaPoco中,如何装饰具有多列主键的表

    在 PetaPoco 网站上给出的示例中 这是装饰类的方法 PetaPoco TableName articles PetaPoco PrimaryKey article id public class article public lon
  • 使用 GCC 在 C 中重载函数 - 编译器警告

    我正在尝试实现函数重载C 而且我非常接近 我正在使用 C99 所以 GenericC11 中引入的关键字对我不可用 我已经开发了一些工作代码 但是当我编译它时 我收到了一些警告 工作示例 include
  • jqgrid 显示链接

    我正在使用 showlink 格式化程序将列作为链接 有没有一种方法可以在我单击该函数时调用 javascript 函数 现在这是我的代码 list jqGrid url datatype json We specify that the