使用 Extjs 3 进行数据查看

发布于 2024-12-17 18:31:53 字数 2373 浏览 3 评论 0原文

我创建一个面板,在图像的左侧缩略图上显示,当我单击图像时,它会显示在右侧面板上。 它可以工作,但我希望当我打开此页面并且无需单击任何拇指时,它会在右侧面板上显示默认图像(此值包含默认图像 D.data.defaultimage 的链接)

这是我此面板的代码:

var Pstore = new Ext.data.JsonStore({
        proxy: new Ext.data.HttpProxy({
            url: 'page.php?cmd=Affich',
            method: 'POST'
        }),
        root: 'images',
        fields: [ 'name', 'url', 'thumb_url' ]
    });
    Pstore.load();

    var tpl = new Ext.XTemplate(
        '<tpl for=".">',
            '<div class="thumb-wrap" id="{name}">',
            '<center><img src="{thumb_url}" title="{name}"></center>',
                '<span>{name}</span></div>',
        '</tpl>'
    );
    tplDetail = new Ext.XTemplate(
        '<div class="details">',
            '<tpl for=".">',
                '<center><img src="{url}"></center>',       
            '</tpl>',
        '</div>'
    );

    datav = new Ext.DataView({
        autoScroll  : true,
        store       : Pstore, 
        tpl         : tpl,
        autoHeight  : false,
        multiSelect : true,
        overClass   : 'x-view-over',
        itemSelector: 'div.thumb-wrap',
        emptyText   : 'No images',
        listeners: {
            click: {
                fn: function() {
                    selNode = datav.getSelectedRecords();
                    tplDetail.overwrite(panelPreview.body, selNode[0].data);
                    panelPreview.body.fadeIn('l', {duration:0.5});
                }
            }
        }
    })

    var panelLeft = new Ext.Panel({
        id          : 'images-view',
        title       : 'Pages',
        autoScroll  : true,
        region      : 'west',
        frame       : true,
        width       : 180,
        layout      : 'fit',
        items       : datav
    });
    panelPreview = new Ext.Panel({
        title       : 'Aperçu:',
        region      : 'center',
        autoScroll  : true,
        frame       : true,
        layout      : 'fit',
        id          : 'panelDetail',
        tpl         : tplDetail
    });

    Affich = new Ext.FormPanel({
        frame       : true,
        layout      : 'border',
        bodyStyle   : 'padding:5px',
        renderTo    : 'right-bottom',
        items       : [panelLeft, panelPreview]
    });

谢谢你帮我

I create a panel that show me on the left thumbnails of images and when I click on an image it shows on the right panel.
It works but i want when i open this page and without clicking on any thumb, it shows me on the right panel a defaut image (this value contain the link of the default image D.data.defaultimage)

This is my code for this panel:

var Pstore = new Ext.data.JsonStore({
        proxy: new Ext.data.HttpProxy({
            url: 'page.php?cmd=Affich',
            method: 'POST'
        }),
        root: 'images',
        fields: [ 'name', 'url', 'thumb_url' ]
    });
    Pstore.load();

    var tpl = new Ext.XTemplate(
        '<tpl for=".">',
            '<div class="thumb-wrap" id="{name}">',
            '<center><img src="{thumb_url}" title="{name}"></center>',
                '<span>{name}</span></div>',
        '</tpl>'
    );
    tplDetail = new Ext.XTemplate(
        '<div class="details">',
            '<tpl for=".">',
                '<center><img src="{url}"></center>',       
            '</tpl>',
        '</div>'
    );

    datav = new Ext.DataView({
        autoScroll  : true,
        store       : Pstore, 
        tpl         : tpl,
        autoHeight  : false,
        multiSelect : true,
        overClass   : 'x-view-over',
        itemSelector: 'div.thumb-wrap',
        emptyText   : 'No images',
        listeners: {
            click: {
                fn: function() {
                    selNode = datav.getSelectedRecords();
                    tplDetail.overwrite(panelPreview.body, selNode[0].data);
                    panelPreview.body.fadeIn('l', {duration:0.5});
                }
            }
        }
    })

    var panelLeft = new Ext.Panel({
        id          : 'images-view',
        title       : 'Pages',
        autoScroll  : true,
        region      : 'west',
        frame       : true,
        width       : 180,
        layout      : 'fit',
        items       : datav
    });
    panelPreview = new Ext.Panel({
        title       : 'Aperçu:',
        region      : 'center',
        autoScroll  : true,
        frame       : true,
        layout      : 'fit',
        id          : 'panelDetail',
        tpl         : tplDetail
    });

    Affich = new Ext.FormPanel({
        frame       : true,
        layout      : 'border',
        bodyStyle   : 'padding:5px',
        renderTo    : 'right-bottom',
        items       : [panelLeft, panelPreview]
    });

Thanks for helping me

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

书间行客 2024-12-24 18:31:53

只是一些快速的(未经测试的)想法 - 您是否尝试过让 panelPreview 成为 DataView?然后您可以将其 emptyText 设置为您想要的值。或者,Panel 有一个您可以应用的data 配置,根据文档,该配置是要加载到模板中的初始数据集。

Just a couple quick (untested) thoughts - have you tried making your panelPreview a DataView? Then you can set its emptyText to the values you want. Alternatively, Panel has a data config you can apply, which according to the docs is the initial set of data to load into the template.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文