您当前的位置: 首页 >  .net

[Ext.Net]Gridpanel上插入超链接

发布时间:2012-12-17 09:39:20 ,浏览量:0

今天突然想在Gridpanel的某列上插入超链接,实现点击功能。但是找遍网上的资料,都没发现合适的。于是就尝试了很多方法,最终成功了,这里和大家分享下我的成果!原来,有很多技巧其实都需要不断的创新和发现。   这边我和大家展示的是部分代码,Gridpanel中的列,注意加粗红色的部分。
"FileRegGrid" runat="server" Title=">>收文登记列表" StripeRows="true" Height="400" StoreID="FileInfoStore" AutoExpandColum="list" Margins="10 20 0 20" TrackMouseOver="true">"ColumnModel" runat="server">"收文编号" width="80" DataIndex="ID" />"档案题名" width="130" DataIndex="TitleName" />"档案编号" width="80" DataIndex="TitleID" />                                "档案状态" width="130" DataIndex="FilesStatus" />"收文日期" width="80" DataIndex="SystemDateTime">"Ext.util.Format.dateRenderer('Y-m-d H:i:s')" />"成文日期" width="80" DataIndex="OnFileDateTime">"Ext.util.Format.dateRenderer('Y-m-d')" />"密级" width="80" DataIndex="SecretsLevelName" />"保管期限" width="80" DataIndex="TimeLimit" />"60" Header="操作" GroupName="Operate">"Pencil" CommandName="Edit">"编辑" />"Delete" CommandName="Delete">"删除" />

renderer一般用于Grid中对列模型的渲染上 其详细信息记录在 Ext.grid.ColumnModel 中的 setRenderer( Number col, Function fn ) 方法里。 renderer:function(value, cellmeta, record, rowIndex, columnIndex, store){}

含有的参数的介绍: 1.value是当前单元格的值。 2.cellmeta里保存的是cellId单元格id,id是列号,css是这个单元格的css样式。 3.record是这行的所有数据,你想要什么,record.data["id"]这样就获得了。 4.rowIndex是行号,不是从头往下数的意思,而是计算了分页以后的结果。 5.columnIndex列号。 6.store,这个厉害,实际上这个是你构造表格时候传递的ds,也就是说表格里所有的数据,你都可以随便调用,唉,太厉害了。

(说的不对,请前辈斧正!),这边的Fn后面的是Js的函数名:

        function details(Id) { var temp = '查看'; return String.format(temp, Id);
        }

效果图: 点击查看,跳转页面,通过地址可以看到,同时传递了ID过去,可以做相应的页面跳转,获取id的工作。

接着,我对上面的代码进行了改进。点击超链接的时候,弹出的是新建的页面。

        function winShow() {
            question = confirm("确实要用新窗口打开站点吗?") if (question != "0") {
                window.open("ZL_IdentifyAdd.aspx", "NewWin", "status=yes, height=400, width=600");
            }
        }
        function details(Id) { var temp = '查看';
        }

效果图

弹出提示框,点击确定,小窗口打开页面

  这是,我又有了新的想法,能不能直接弹出同张页面上的Window呢,但是之前我就试过Handler="#{window_id}.show()";的方法弹出Window窗口。 于是,我和朋友讨论了下,他提供了下思路,我尝试了下,也成功了。   大致的思路是:还是在列上触发details的Function。然后在details函数中实现点击超链接跳转到另一个函数btnClick,btnClick则是实现按钮的点击事件。在这之前,要先新建个button控件,设置Hidden=“true”。然后在button的Listener事件中添加具体的Click点击,通过Handler的方法实现window的弹出事件。有人可能要问,为什么话怎么多的功夫,直接在details函数中实现window的弹出不就可以了,但是我试过发现不行诶(可能有什么方法能实现,希望知道的朋友能指教,这边小弟先谢过!)。

好了下面就直接上代码了,这是Button控件,设置Hidden和点击事件,点击弹出window,FileReg_win是要弹出的Window的ID:

        "Link" runat="server" Hidden="true">"#{FileReg_win}.show();" />

接下来就是具体的js函数:

        function details(Id) { var temp = '超链接'; return String.format(temp, Id);
        }
        function btnClick() {
            document.getElementById("Link").click();
        }

这样,就能实现点击超链接,弹出Window了。还等什么,试试呗!由于是临时写的,没很好的排版整理,大家谅解。 转自:http://www.cnblogs.com/jianglan/archive/2012/04/03/2431545.html

关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    105936博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0492s