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

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

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 = '<a href="Details.aspx?Id={0}" target="_blank" style="color:blue">查看</a>';
            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 = '<a href="#" οnclick="winShow()" style="color:blue">查看</a>';
        }

效果图

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

 

  这是,我又有了新的想法,能不能直接弹出同张页面上的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:

        <ext:Button ID="Link" runat="server" Hidden="true">
            <Listeners>
                <Click Handler="#{FileReg_win}.show();" />
            </Listeners>
        </ext:Button>

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

        function details(Id) {
            var temp = '<a href="#" οnclick=" btnClick()" style="color:blue">超链接</a>';
            return String.format(temp, Id);
        }
        function btnClick() {
            document.getElementById("Link").click();
        }

这样,就能实现点击超链接,弹出Window了。还等什么,试试呗!由于是临时写的,没很好的排版整理,大家谅解。

转自:http://www.cnblogs.com/jianglan/archive/2012/04/03/2431545.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值