ExtJs学习笔记(7)_获取GridPanel选中行的详细信息

简介: 这一节,我们将学习如何获取Grid当前选中行的信息   1.xml数据源内容:           203     21            0446355453            Jimmy.

这一节,我们将学习如何获取Grid当前选中行的信息

 

1.xml数据源内容:

<? xml version="1.0" encoding="UTF-8" ?>
< Data >
  
< Items >    
    
< TotalResults > 203 </ TotalResults >
    
< TotalPages > 21 </ TotalPages >
    
< Item >
      
< ASIN > 0446355453 </ ASIN >      
      
< Author > Jimmy.Yang </ Author >
      
< Manufacturer > Warner Books </ Manufacturer >
      
< ProductGroup > Book </ ProductGroup >
      
< Title > Master of the Game </ Title >       
    
</ Item >
    
< Item >
      
< ASIN > 0446613657 </ ASIN >           
      
< Author > Sidney Sheldon </ Author >
      
< Manufacturer > Warner Books </ Manufacturer >
      
< ProductGroup > Book </ ProductGroup >
      
< Title > Are You Afraid of the Dark? </ Title >       
    
</ Item >   
  
</ Items >
</ Data >


2.静态页内容:

 

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html  xmlns ="http://www.w3.org/1999/xhtml" >
< head >
    
< meta  http-equiv ="Content-Type"  content ="text/html; charset=utf-8" />
    
< link  rel ="stylesheet"  type ="text/css"  href ="../resources/css/ext-all.css"   />
     
< script  type ="text/javascript"  src ="../adapter/ext/ext-base.js" ></ script >
    
< script  type ="text/javascript"  src ="../ext-all.js" ></ script >  
    
< style  type ="text/css" >
        *
{ font-size : 12px ; line-height : 130% ; }
    
</ style >
    
< title > ExtJs_Grid_Xml </ title >
</ head >
< body >

< script  type ="text/javascript" >

    Ext.onReady(
function () {

        
var  store  =   new  Ext.data.Store({
            url: 
' GridData.xml ' ,
            reader: 
new  Ext.data.XmlReader(
                { record: 
' Item '  },
                [
" ASIN " " Author " " Manufacturer " " ProductGroup " " Title " ])
        });

        
function  SeeDetail(ID) {
            
return   ' <a href="Book.aspx?id= '   +  ID  +   ' " target="_blank"> '   +  ID  +   ' </span> ' ;
        }

        
var  grid  =   new  Ext.grid.GridPanel({
            store: store,
            frame: 
true ,
            columns: [
                { id: 
" ASIN " , header:  " 出版号 " , width:  120 , renderer: SeeDetail, dataIndex:  ' ASIN ' , sortable:  true  },
                { header: 
" 作者 " , width:  120 , dataIndex:  ' Author ' , sortable:  true  },
                { header: 
" 书名 " , width:  180 , dataIndex:  ' Title ' , sortable:  true  },
                { header: 
" 制作商 " , width:  115 , dataIndex:  ' Manufacturer ' , sortable:  false  },
                { header: 
" 产品组 " , width:  100 , dataIndex:  ' ProductGroup ' , sortable:  false }],
            renderTo: 
' example-grid ' ,
            viewConfig: { columnsText: 
' 显示列 ' , sortAscText:  ' 升序 ' , sortDescText:  ' 降序 '  },
            width: 
660 ,
            height: 
100 ,
            sm: 
new  Ext.grid.RowSelectionModel({ singleSelect:  true  })
        });    


        
//  定义详细信息的显示模板
         var  bookTplMarkup  =  [
        
' 出版号: <a href="http://www.baidu.com/{ASIN}" target="_blank">{ASIN}</a><br/> ' ,
        
' 作者: {Author}<br/> ' ,
        
' 书名: {Title}<br/> ' ,
        
' 产品组: {ProductGroup}<br/> '
        ];

        
var  bookTpl  =   new  Ext.Template(bookTplMarkup);  // ExtJs的模板组件

        
var  p  =   new  Ext.Panel({
            id: 
" detailPanel " ,
            title: 
' 详细情况 ' // 标题
            collapsible:  true // 右上角上的那个收缩按钮,设为false则不显示
            renderTo:  ' example-grid ' // 这个panel显示在html中id为container的层中
            width:  660 ,
            height: 
100 ,
            html: 
" 请在上面网格中选择一行数据 " // panel主体中的内容,可以执行html代码
        });

        grid.getSelectionModel().on(
' rowselect ' function (sm, rowIdx, r) {
            
var  detailPanel  =  Ext.getCmp( ' detailPanel ' );
            bookTpl.overwrite(detailPanel.body, r.data);
            Ext.MessageBox.alert(
" 提示 " , " 您选择的出版号是: "   +  r.data.ASIN);
        });
        store.load();
    });

</ script >

< div  id ="example-grid"  style ="margin:10px 0 0 10px" ></ div >
</ body >
</ html >

效果图
目录
相关文章
|
13天前
|
人工智能 数据可视化 安全
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
本文详解如何用阿里云Lighthouse一键部署OpenClaw,结合飞书CLI等工具,让AI真正“动手”——自动群发、生成科研日报、整理知识库。核心理念:未来软件应为AI而生,CLI即AI的“手脚”,实现高效、安全、可控的智能自动化。
34738 37
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
|
7天前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
本文介绍了Claude Code终端AI助手的使用指南,主要内容包括:1)常用命令如版本查看、项目启动和更新;2)三种工作模式切换及界面说明;3)核心功能指令速查表,包含初始化、压缩对话、清除历史等操作;4)详细解析了/init、/help、/clear、/compact、/memory等关键命令的使用场景和语法。文章通过丰富的界面截图和场景示例,帮助开发者快速掌握如何通过命令行和交互界面高效使用Claude Code进行项目开发,特别强调了CLAUDE.md文件作为项目知识库的核心作用。
7798 22
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
|
25天前
|
人工智能 JSON 机器人
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
本文带你零成本玩转OpenClaw:学生认证白嫖6个月阿里云服务器,手把手配置飞书机器人、接入免费/高性价比AI模型(NVIDIA/通义),并打造微信公众号“全自动分身”——实时抓热榜、AI选题拆解、一键发布草稿,5分钟完成热点→文章全流程!
45613 153
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
|
3天前
|
人工智能 JavaScript Ubuntu
低成本搭建AIP自动化写作系统:Hermes保姆级使用教程,长文和逐步实操贴图
我带着怀疑的态度,深度使用了几天,聚焦微信公众号AIP自动化写作场景,写出来的几篇文章,几乎没有什么修改,至少合乎我本人的意愿,而且排版风格,也越来越完善,同样是起码过得了我自己这一关。 这个其实OpenClaw早可以实现了,但是目前我觉得最大的区别是,Hermes会自主总结提炼,并更新你的写作技能。 相信就冲这一点,就值得一试。 这篇帖子主要就Hermes部署使用,作一个非常详细的介绍,几乎一步一贴图。 关于Hermes,无论你赞成哪种声音,我希望都是你自己动手行动过,发自内心的选择!
1484 16
|
14天前
|
人工智能 JSON 监控
Claude Code 源码泄露:一份价值亿元的 AI 工程公开课
我以为顶级 AI 产品的护城河是模型。读完这 51.2 万行泄露的源码,我发现自己错了。
5554 21
|
2天前
|
云安全 人工智能 供应链
|
7天前
|
机器学习/深度学习 存储 人工智能
还在手写Skill?hermes-agent 让 Agent 自己进化能力
Hermes-agent 是 GitHub 23k+ Star 的开源项目,突破传统 Agent 依赖人工编写Aegnt Skill 的瓶颈,首创“自我进化”机制:通过失败→反思→自动生成技能→持续优化的闭环,让 Agent 在实践中自主构建、更新技能库,持续自我改进。
1470 5