Javascript 在dojo数据网格中实现超链接

Javascript 在dojo数据网格中实现超链接,javascript,datagrid,dojo,xpages,Javascript,Datagrid,Dojo,Xpages,这是我第一次使用datagrids,所以请原谅任何不清楚的地方 我有在DojoDataGrid(dojox.grid.datagrid)中实现的json文本 网格本身创建得非常好,所有数据都按需要显示,但我希望其中一个字段(特定的“策略”字段)链接到另一个页面。当我重定向时,我需要在“策略”字段中包含信息,因为策略编号将在下一页中使用 换句话说,我希望表中的所有策略字段都有自己唯一的外部链接,该链接将包含相应字段中的策略编号。我能想到的最简单的方法是更改输入到DataGrid结构参数中的布局变量

这是我第一次使用datagrids,所以请原谅任何不清楚的地方

我有在DojoDataGrid(dojox.grid.datagrid)中实现的json文本

网格本身创建得非常好,所有数据都按需要显示,但我希望其中一个字段(特定的“策略”字段)链接到另一个页面。当我重定向时,我需要在“策略”字段中包含信息,因为策略编号将在下一页中使用

换句话说,我希望表中的所有策略字段都有自己唯一的外部链接,该链接将包含相应字段中的策略编号。我能想到的最简单的方法是更改输入到DataGrid结构参数中的布局变量,但可能有一种更简单的方法。如果有人有任何想法,我将不胜感激


提前感谢。

您可以使用formatter在网格内创建链接、dojo按钮等

Formatter是一个被调用的JavaScript函数,它返回要在单元格中显示的值。数据存储中的值作为参数传递给函数。插入到页面中的返回值可以是任何合法的HTML,甚至可以是dijit小部件

所以,在您的情况下,向策略列添加一个格式化程序

{field:'policy', name:'Policy', formatter: createLink},
然后用必要的外部链接定义函数。例如:

function createLink(data){
    return ("<a href=policyinfo.jsp?policy="+data+">"+data+"</a>");
}
函数createLink(数据){
返回(“”);
}

参考资料:

我几乎肯定这是可以做到的。您可以为网格创建onclick事件,并可以访问当前行中的数据。看这里,我想你会发现布拉德在这方面有一篇文章。我自己也用过。非常感谢您的回复。是否有方法引用“字段”将指定的值?我的jsonStore包含类似于“policy”的内容:“0101”,因此使用您的方法,我需要以某种方式将信息从字段“policy”获取到函数createLink。我喜欢这个想法,但我再次面临一个问题,我不知道如何引用这个领域。如果这就像说“formatter:createLink(field.getValue())”一样简单,那么它就完美了。你知道怎么做吗?@user3739102是的。日期存储中的值作为参数传递给格式化程序函数。在本例中,它是
数据
。无需在布局中指定参数。它将被隐式传递(?)。
function createLink(data){
    return ("<a href=policyinfo.jsp?policy="+data+">"+data+"</a>");
}