Extjs将面板滚动到某个位置

时间:2011-05-11 06:08:47

标签: extjs

嗨我有一个面板,我想滚动到该面板中的特定位置我该怎么做

var tabs= new Ext.Panel({
    id:id,      
    title:text,
    autoScroll:true,
    iconCls:'windowIcon',
    closable:true,
    closeAction:'hide'
});

4 个答案:

答案 0 :(得分:7)

将面板正文的scrollTop属性设置为要向下滚动的像素数:

// Scroll the body down by 100 pixels.
tabs.body.dom.scrollTop = 100;

答案 1 :(得分:4)

另一种选择是在这里使用函数scrollTo(),

http://docs.sencha.com/extjs/3.4.0/#!/api/Ext.Element-method-scrollTo

e.g。

Ext.getCmp('graph_panel').body.scrollTo('left',250);  
Ext.getCmp('graph_panel').body.scrollTo('top',200); 

但scrollTo()函数没有绑定检查以确保滚动位于此元素的可滚动范围内,而scroll()函数则执行,因此最好使用scroll()函数。

e.g。

Ext.getCmp('graph_panel').body.scroll('left',300);
Ext.getCmp('graph_panel').body.scroll('bottom',300);

答案 2 :(得分:1)

考虑父面板的大小有限,如400px x 400px,并且父面板中的子面板可用,尺寸为1000px x 1000px。所以由父面板完成滚动,然后代码应如下所示......

Ext.getCmp('id_of_Parent_panel').scrollBy(500, 500, true);

这里是scrollBy(x-value = 500,y-value = 500,animation = true)所以子面板通过父面板对角滚动(实际上先水平然后垂直)......

以下示例用于了解有关此概念的更多信息...... 我正在使用ExtJs 4.2.1

Ext.onReady(function () {
        Ext.create('Ext.panel.Panel', {            
            title:'Parent',
            height: 200,
            autoScroll: true,
            width: 700,
            id:'Parent',
            renderTo: Ext.getBody(),
            items: [{
                xtype: 'panel',
                title: 'Child',
                height: 1000,
                width: 1000,              
                items:[{
                    xtype: 'button',
                    text: 'Please Scroll me....',
                    listeners: {
                        click: {
                            fn: function () {
                                Ext.getCmp('Parent').scrollBy(500, 500, true);
                            }
                        }
                    }
                }]

            }]
        })
    });

答案 3 :(得分:0)

您可以在视图配置中添加public async Task CleanTest(string extName) { ExtensionProperty ep = new ExtensionProperty { Name = extName, DataType = "String", TargetObjects = { "User" } }; App app = (App)(await _client.Applications.Where(a => a.AppId == _managementAppClientId).ExecuteSingleAsync()); app.ExtensionProperties.Add(ep); await app.UpdateAsync(); GraphUser user = (GraphUser)(await _client.Users.Where(u => u.UserPrincipalName.Equals("email")).ExecuteSingleAsync()); string propName = FormatExtensionPropertyName(extName); //formats properly as extesion_xxx_name user.SetExtendedProperty(propName, "testvalue"); //user.SetExtendedProperty(extName, "testvalue"); await user.UpdateAsync(); // fails here } 配置属性。

preserveScrollOnReload