博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于Ext.Panel编写一个图片列表类
阅读量:6529 次
发布时间:2019-06-24

本文共 3643 字,大约阅读时间需要 12 分钟。

先看效果后上代码

/*
    图片列表视图,可以把图片按图片集合的形式展现
    未来可能发展为一个功能丰富的图片播放管理工具
    <script type="text/javascript" language="javascript" src="/modules/cms/js/pictureview.js"></script>
    eg:
    var pic = new BeidaSoft.CMS.PictureView({
        dataUrl:"somedata.htm"
    })
    layout.C.add(pic)
    传递参数为标准翻页工具条提供的参数如:start、limit等等
    数据格式要求为
    {
        totalCount:100,
        rows:[
            {
                id:"123",
                name:"pic1",
                smallImageSrc:"",
                bigImageSrc:""
            },{
                name:"pic2"
            }
        ]
    }
*/
Ext.namespace('BeidaSoft.CMS');
BeidaSoft.CMS.PictureView = 
function (config) {
    BeidaSoft.CMS.PictureView.superclass.constructor.call(
this,config)
}
Ext.extend(BeidaSoft.CMS.PictureView, Ext.Panel,{
    border:
false,
    layout:"fit",
    pageSize:20,
    dataUrl:"",
    store4Pic:
null,
    initComponent: 
function () {
        
//
数据源
        
var store = 
new Ext.data.JsonStore({
            url: 
this.dataUrl,
            root: 'rows',
            totalProperty: 'totalCount',
            fields: [
                {name: 'id', mapping: 'id'},
                {name: 'name', mapping: 'name'},
                {name: 'smallImageSrc', mapping: 'smallImageSrc'},
                {name: 'bigImageSrc', mapping: 'bigImageSrc'}
            ],
            listeners:{
                beforeload:
function(){
                    
//
alert(1)
                    
//
return false
                },
                load:
function(){
                    
//
alert(2)
                },
                loadexception:
function(misc){
                    
//
不符合reader格式的数据也会引发异常
                    
//
debugger
                    
//
alert(3)
                }
            }
        });
        
this.store4Pic = store
        
        
//
翻页工具条
        
this.bbar = 
new Ext.PagingToolbar({
            pageSize: 
this.pageSize,
            store: 
this.store4Pic,
            displayInfo: 
true,
            emptyMsg: '没有记录'
        });
        
var handler4ClickPic = String.format('Ext.getCmp("{0}").ClickPic("{id}")', 
this.id)
        
var currentObject = String.format('Ext.getCmp("{0}")', 
this.id)
        
var template = [
            '<style>',
                'li {float:left;width:145px;height:140px}',
            '</style>',
            '<ul>',
                '<tpl for=".">',
                    '<li style="height:168px; border: solid 1px #ccc; margin:2px;" class="picture">',
                        '<dl style="text-align:center;">',
                        '<dt>',
                        '<a target="_blank" οnclick=Ext.getCmp("{0}").ClickPic("{id}")>',
                            '<img width="145" height="120" src="{smallImageSrc}" />',
                        '</a>',
                        '</dt>',
                        '<dd style="padding-bottom=0px ;padding-left=0px ;padding-right=0px ;padding-top=0px ;">',
                        '<label style="text-align:center; display:">',
                        '<input type="checkbox" id="{id}" name="{name}" />',
                        "{name}",'</label>',
                        '<br>',
                        '<a target="_blank" οnclick=Ext.getCmp("{0}").Preview("{id}")>',
                            '<img src="/modules/cms/images/预览.bmp" title="预览" />',
                        '</a>',
                        '<a>',
                            '<img src="/modules/cms/images/编辑.bmp" title="编辑" />',
                        '</a>',
                        '<a target="_blank" οnclick=Ext.getCmp("{0}").DeletePic("{id}")>',
                            '<img src="/modules/cms/images/删除.bmp" title="删除" />',
                        '</a>',
                        '</dd>',
                        '</dl>',
                    '</li>',
                '</tpl>',
            '</ul>'
        ].join("")
        template = String.format(template, 
this.id)
            
        
this.tpl4Pic = 
new Ext.XTemplate(template);
        
this.dataview4Pic = 
new Ext.DataView({
            store: 
this.store4Pic,
            tpl: 
this.tpl4Pic,
            
//
因为有的样式是用id写的所以也这么写是不合适的
            
//
id: 'phones',
            itemSelector: 'li.phone',
            overClass: 'phone-hover',
            multiSelect: 
true,
            emptyText: 'No images to display',
            autoScroll:
true
        });
        
this.items = 
this.dataview4Pic;
        BeidaSoft.CMS.PictureView.superclass.initComponent.call(
this);
    },
    
//
设置参数
    SetBaseParams: 
function(params) {
        
//
尚未实现
    },
    
//
整合数据
    LoadData: 
function () {
        
this.store4Pic.load()
    },
    
//
派生类可以重写这些方法来实现特定的逻辑
    
//
预览图片
    Preview:
function(id){
        
//
alert(id)
    },
    
//
点击图片
    ClickPic:
function(id){
        
//
alert(id)
    },
    
//
删除图片
    DeletePic:
function(id){
        
    },
    
//
获取选中的记录
    GetSelections:
function(){
        
var arrRecord = []
        
var body = 
this.body.dom
        
var arrInput = body.getElementsByTagName("input")
        
for(
var i=0; i<arrInput.length; i++){
            
var input = arrInput[i]
            
if(input.checked){
                
var record = 
this.store4Pic.getAt(i)
                arrRecord.push(record)
            }
        }
        
return arrRecord
    },
    
//
渲染
    onRender: 
function (ct,position) {
        BeidaSoft.CMS.PictureView.superclass.onRender.apply(
this,arguments);
        
this.LoadData();
    }
});
Ext.reg("beidasoft.cms.pictureview", BeidaSoft.CMS.PictureView)

转载地址:http://fxtbo.baihongyu.com/

你可能感兴趣的文章
images对象实现图片幻灯片
查看>>
RDIFramework.NET ━ 9.6 模块(菜单)管理 ━ Web部分
查看>>
Android安全问题 静音拍照与被拍
查看>>
cocos2d-x 3.1.1 学习笔记[13] listen 监听器
查看>>
WTL介绍
查看>>
应用程序框架实战三十四:数据传输对象(DTO)介绍及各类型实体比较(转)
查看>>
放量滞涨,抛出信号
查看>>
linux主机下的Vmware Workstation配置NAT设置 端口映射-Ubuntu为例
查看>>
unity physics joint
查看>>
TD的访问地址
查看>>
一张图看懂normal,static,sealed,abstract 的 区别
查看>>
Task的使用
查看>>
s:iterator巧妙控制跳出循环
查看>>
Serv-U 的升级及数据备份和迁移【转】
查看>>
webstorm无法显示左边文件夹目录的解决方法
查看>>
数字校园-云资源平台 2014.10.26-人人通共享空间
查看>>
软件project--谈项目开发
查看>>
在Android中创建文件
查看>>
爬虫基础
查看>>
JS组件系列——再推荐一款好用的bootstrap-select组件,亲测还不错
查看>>