Ext选项卡tabpanel切换动态加载数据

鸣人不说暗话,来张图:

代码开始:(使用Ext,ajax加载数据,如果你们有好的方法也可以多多交流)var tabxsk = new Object();
//初始化
tabxsk.init = function () {
    test.pageSize = Math.floor((d_right_height() - 106 - 27) / 23);
    tabxsk.markpageSize = Math.floor((d_right_height() - 106 - 27) / 23);
    tabxsk.mappageSize = tabxsk.pageSize;
    // tabxsk.createstore();
    /* tabxsk.panel = new Ext.Panel({
         id: ‘tabxskpane4‘,
         renderTo: ‘panel16‘,
         width: 369,
         height: d_right_height(),
         html: ‘<div id="tabxskpanel"></div> ‘
     });
     tabxsk.BuildingPanel(‘tabxskpanel‘);*/
    // test.ScreenList();
    tabxsk.createTab();
    test.store.load({ params: { start: 0, limit: test.pageSize } });

};

tabxsk.createTab = function (check) {

    var tab = new Ext.TabPanel({
        id: ‘mainTab‘,
        renderTo: ‘panel16‘,
        width: 369,
        height: d_right_height(),
        enableTabScroll: true,

        //页签名称
        items: [{
            id: ‘tab1‘,
            title: ‘A‘,//标题
            items: [test.createuser()]
        }, {
            id: ‘tab2‘,
            title: ‘B‘,
            html: ‘<iframe scrolling="auto" frameborder="0" width="100%" height="100%" src=‘ + "ManageIconPage.aspx" + ‘></iframe>‘
        },
        {
            id: ‘tab3‘,
            title: ‘C‘,
            // layout: ‘form‘,
            html: ‘<iframe scrolling="auto" frameborder="0" width="100%" height="100%" src=‘ + "tabxsk.aspx" + ‘></iframe>‘

        }

        ],
    });

    //默认打开第一个tab
    tab.items.get(0).show();

    //获取items的id
    var i = tab.items.items;
    for (var j = 0; j < i.length; j++) {
        //var k = i[j].id;
        //alert(i);
        //alert(i[j].id);

    }

    //alert(tab.getActiveTab().tabConfig.id);
    //this.tab.activate(0);

    return this.tab;
};

//tab选项卡内容

var test = new Object();
//type = null;

test.createuser = function () {
    test.store = new Ext.data.JsonStore({
        totalProperty: ‘totalCount‘,
        root: ‘result‘,
        proxy: new Ext.data.HttpProxy({ url: "handler/tab.ashx?funcName=GetList" }),
        fields: [
              { name: ‘id‘ },
            { name: ‘name‘ },
            { name: ‘type‘ },
            { name: ‘opt‘ },
            { name: ‘the_geom‘ }
        ],
        remoteSort: true
    });
    test.store.setDefaultSort(‘name‘, ‘ASC‘);
    var tbar = [‘关键字搜索: ‘, {
        xtype: ‘textfield‘,
        id: ‘tabxsk_keyword‘,
        width: 180
    }, ‘-‘, {
        text: ‘查询‘,
        xtype: "button",
        handler: test.gridSearch
    }, ];

    });

    var listeners = {
        ‘render‘: function () {

            //tbar1.render(this.tbar);
            tbar2.render(this.tbar);
            tbar3.render(this.tbar);

        }
    };
    var colM = new Ext.grid.ColumnModel([
        new Ext.grid.RowNumberer(),
          //{ header: " 名称 ", dataIndex: "name", width: 150, align: ‘left‘, sortable: true, renderer: test.listicon },
         { header: " 名称 ", dataIndex: "name", width: 150, align: ‘left‘, sortable: true, renderer: test.listCss1 },
        { header: " 操作 ", dataIndex: "id", width: 170, align: ‘center‘, sortable: false, renderer: test.listAction }

    ]);

//grid填充数据
    test.grid = new Ext.grid.GridPanel({
        id: ‘testGrid‘,
        //renderTo: ‘yhgl_user‘,
        height: d_right_height() - 30,
        //autoHeight: true,
        autoScroll: true,
        width: 368,
        cm: colM,
        viewConfig: {
            forceFit: true   //每列自动充满Grid
        },
        emptyText: ‘暂无数据!‘,
        store: test.store,
        stripeRows: true,
        loadMask: true,
        tbar: tbar,
        listeners: listeners,
        bbar: new Ext.PagingToolbar({
            pageSize: test.pageSize,
            store: test.store,
            displayInfo: true,
            displayMsg: ‘共{2}条‘,
            emptyMsg: ‘暂无记录‘
        })
    });
    return test.grid;
};
//获取数据列表
test.getList = function (args) {
    var keyword = $(‘test_keyword‘).get(‘value‘);
    if (args == null) args = new Object();
    if (args.all) {
        test.store.baseParams = null;
    } else {
        test.store.baseParams = {
            wkt: args.wkt ? args.wkt : null,
            keyword: keyword ? escape(keyword) : null,
            center: args.center ? args.center : null,
            border: args.border ? args.border : null,
            distance: args.distance ? args.distance : 0
        };
    }
    test.store.proxy = new Ext.data.HttpProxy({ url: "handler/tab.ashx?funcName=GetList" });
    /*test.store.load({
        params: { start: 0, limit: test.pageSize }
    });*/
};

//列表数据
test.listCss1 = function (value, cellmeta, record, rowIndex, columnIndex, store) {
    return ‘<input type="checkbox" name="checkbtn_tabxsk"  value="" style="width:13px;height:13px" id=‘ + record.data.id + ‘> ‘
    + ‘ <a href="javascript:void(0);" title="查看信息" class="lzhe" onclick="test.showContent(‘ + rowIndex + ‘)"  >‘ + value + ‘</a>‘;
};

//列表按钮样式
test.listAction = function (value, cellmeta, record, rowIndex, columnIndex, store) {
    return ‘<a href="javascript:void(0);" title="点击查看" class="lblue" onclick="test.showTuYa(‘ + rowIndex + ‘);">查看</a>&nbsp‘ +
    ‘<a href="javascript:void(0);" title="保存" class="lblue" onclick="test.saveTuYa(‘ + rowIndex + ‘);">保存</a>&nbsp‘
        + ‘<a href="javascript:void(0);"   class="lblue"  title="点击编辑信息"   style="cursor:pointer " onclick="test.editBuilding( ‘ + rowIndex + ‘);">编辑</a>‘;
};

test.marklistCss1 = function (value, cellmeta, record, rowIndex, columnIndex, store) {
    return ‘<input type="checkbox" name="checkbtn1"  value="" style="width:13px;height:13px" id=‘ + record.data.id + ‘> <a href="javascript:void(0);" title="‘ + value + ‘" class="lzhe" >‘ + value + ‘</a>‘;
};

//每个人的代码方式都不一样,希望对您有用!

原文地址:https://www.cnblogs.com/maoye520/p/9790151.html

时间: 2024-10-07 19:57:41

Ext选项卡tabpanel切换动态加载数据的相关文章

android左右滑动加载分页以及动态加载数据

android UI 往右滑动,滑动到最后一页就自动加载数据并显示 如图: Java代码 package cn.anycall.ju; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.Activity; import android.content.ActivityNotFoundException; impo

[JS前端开发] js/jquery控制页面动态加载数据 滑动滚动条自动加载事件

页面滚动动态加载数据,页面下拉自动加载内容 相信很多人都见过瀑布流图片布局,那些图片是动态加载出来的,效果很好,对服务器的压力相对来说也小了很多 有手机的相信都见过这样的效果:进入qq空间,向下拉动空间,到底部时,会动态加载剩余的说说或者是日志 今天我们就来看看他们的实现思路和js控制动态加载的代码 下面的代码主要是控制滚动条下拉时的加载事件的 在下面代码说明出,写上你的操作即可,无论是加载图片还是加载记录数据  都可以 别忘了引用jquery类库 [JavaScript] 纯文本查看 复制代码

ListView动态加载数据分页(使用Handler+线程和AsyncTask两种方法)

ListView动态加载数据分页(使用Handler+线程和AsyncTask两种方法)

Extjs的form表单自动装载数据(通过Ext.data.Model的代理加载数据)

在做项目的时候遇到一个问题,以前双击grid页面一行数据的时候,会吧双击这一行的数据自动加载到双击的页面(Ext的弹出框),可以通过this.down(''form).getForm().loadRecord(record)来自动加载,可是现在有一个需求就是双击grid一行弹出一个新的浏览器页面(不是ext的弹出框,通过window.open()实现),只能把双击的id传到页面,再重新查数据手动赋值,如果一个页面字段很多,一个一个赋值是很辛苦的,所以就想能不能自动装载数据 通过长时间研究发现,t

ASP.NET MVC动态加载数据

ASP.NET MVC动态加载数据,一般的做法是使用$.each方法来循环产生tabel: 你可以在html时先写下非动态的部分: <table> <tr> <th style="width:10px;"><input id="SelectAll" type="checkbox" /></th> <th>ID</th> <th>Port_Start&l

滚屏加载--无刷新动态加载数据技术的应用

index.html <?php require_once('connect.php'); //连接数据库 $user = array('demo1','demo2','demo3','demo3','<de></de>mo4'); //模拟了几个用户 ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtm

C# checklistbox控件用法总结(怎样得到多选的值,以及动态加载数据)

C# checklistbox控件用法总结(怎样得到多选的值,以及动态加载数据) 一般认为:foreach (object obj in checkedListBox1.SelectedItems)即可遍历选中的值. 其实这里遍历的只是高亮的值并不是打勾的值.遍历打勾的值要用下面的代码: for (int i = 0; i < checkedListBox1.Items.Count; i++) { if (checkedListBox1.GetItemChecked(i)) { MessageB

用collection view动态加载数据卡顿的可能原因

在用collectionview动态加载数据时有个好处,就是cell得到了复用,如果整屏显示一个cell,最多只有两个cell,坏处就是需要不断的刷新cell,这时候容易卡顿. 每次滑动collectionview会调用代理方法,获取新的cell,这时你要将数据传给cell并进行显示. 现在的情况是快速滑动的时候和慢速滑动的时候不会卡顿,快速滑动的时候不会请求数据,所以卡顿原因可能是在请求数据的时候,慢速滑动的时候因为间隔时间长,数据应该都加载好了,所以卡顿原因可能是间隔过短,cell已经被创建

动态加载数据新的可行性

动态加载数据就是随着用户的交互情况来加载数据,避免一次全部加载浪费流量和卡顿. 最典型的情况就是用户查看每天的信息这种状况. 最开始我的做法是用一个scrollview和三个view来解决.先实现一个轮播图效果,每次用户左滑和右滑之后又将页面跳回到中间的页面,这个时候中间页面的状态应该和左滑或右滑页面的状态相同.所以每次都是先加载左中右三天数据,滑动到右边后,重置三天数据跳转到中间. 但这种有个问题,就是很难实现bounce反弹效果,即使实现了代码会非常乱,还有就是快速滑动的时候造成的无法滑动问