zoukankan      html  css  js  c++  java
  • ExtJS基础知识总结:常用控件使用方式(一)

    概述

      最近一直在做相关ExtJs方面的项目,遇到了ExtJs使用方面的一系列问题,现在将使用技巧做个记录汇总,以便于下次能够快速使用。以下都是ExtJs控件的常用方法,做简单汇总,俗话说,好记星不如烂笔头,总一天会使用的。

    基础控件使用技巧

    1、Grid表格操作:获取Store的数据信息和操作列表行数据

    //创建一个grid
    var rowPanel = Ext.create('Ext.grid.Panel', {});
    
    //获取grid对应的Store的数据条数
    rowPanel.getStore().getCount();
    
    //将grid第2列设置为不选中
    rowPanel.getSelectionModel().deselect(1);
    
    //获取grid正在使用的选择模型,将grid全部不选中
    rowPanel.getSelectionModel().deselectAll();
    rowPanel.getSelectionModel().clearSelections(); //清除勾选
    
    //判断grid的第一列是否选中
    rowPanel.getSelectionModel().isSelected(0);
    
    //将grid的对应的store数据相同arr选中
    rowPanel.getSelectionModel().select(arr);
    
    //获取选中grid数据长度
    grid.getSelectionModel().getSelection().length;
    
    //获取选中grid数据第1行的数据ID
    grid.getSelectionModel().getSelection().obj[0].get("Id");
    grid.getSelectionModel().getSelection().obj[0].getId();
    
    //store的each使用:
    rowPanel.getStore().each(function (record) {
        var operationIdAll = record.data.Id;//获取数据ID
        //处理逻辑
    });
    
    //获取store的index为1的数据id
    rowPanel.getStore().getAt(1).data.Id;
    
    //移除所有数据
    rowPanel.getStore().removeAll()

    2、设置控件的值setValue:

    //发票类型
    var invKind: Ext.data.IStore = ({
        fields: ["name", "id"],
        data: [
            { name: "全部", id: "0" },
            { name: "启用", id: "Ordinary" },
            { name: "禁用", id: "Special" }
        ]
    });
    items: [{
                flex: 0.2,
                xtype: "combobox",
                store: invKind,
                displayField: "name",   //显示出来的是name 
                valueField: "id",      //值是id
                fieldLabel: " 启用状态",     //label
                editable: false,        //不可编辑
                id: "invkind",         //id
                labelWidth: 80
            }
    ]       
    //设置第一项选中
    invkind对应的数据源自动加载数据,之后设置0
    Ext.getCmp("invkind").setValue("0");

    3、ExtJS异步请求Ajax

    /*************************************Ext Ajax数据请求*****************************/
     Ext.MessageBox.confirm("提示", "你确定要禁用吗?", 
     function (btn) {
        if (btn == "yes") {
            Ext.Ajax.request({
                url: '/User/userEnable',
                method: "POST",
                params: {
                    userID: ids,
                    isDisabled: '禁用'
                },
                waitMsg: '正在启用数据...',
                waitTitle: '提示',
                success: function (reps) {
                    Ext.MessageBox.alert('提示', '禁用成功!');               
                    store.load();
                },
                failure: function (reps) {
                    Ext.MessageBox.alert("提示", '禁用失败!');
                }
            });
        }
    });

    4、Form表单提交

    /**********获取Form数据,提交*****************************/
    function saveUser_ajaxSubmit4() {
     new Ext.form.BasicForm('userForm').submit( {
          waitTitle : '请稍后...',
          waitMsg : '正在保存用户信息,请稍后...',
          url : 'user_save.action',
          method : 'post',
          success : function(form, action) {
           alert(action.result.msg);
          },
          failure : function(form, action) {
           alert(action.result.msg);
          }
     });
    }
    
    /**********获取Form数据,重置值*****************************/
     formPanel_ResetPwd.form.reset();

    5、ExtJs弹窗等待

    //弹窗等待
    
    Ext.get("btn5").on("click", function () {
        Ext.MessageBox.wait("正在处理,请稍候...", "等待");
        Ext.defer(function () {
            Ext.MessageBox.close();
        }, 3000);
    });

    6、checkboxgroup的使用:change事件监控

    {
        xtype: "checkboxgroup",
        id:"cbgsmdetailmerge",
        margin: '0 0 0 15',
         220, 
        fieldLabel: "狗子",
        style: 'color:red;',
        columns: 1,
        //flex: 1,
        items: [
            {
                boxLabel: "宠物狗", id: "cbsmproductinfo", name: "cbsmproductinfo", inputValue: "1", checked: true, listeners: {
                    change: function (v, v1, v2) {
                        alert(v1);
                    }
                } }
        ]                
    }
    , {
        xtype: "checkboxgroup",
        id: "cbgsmordermerge",
        fieldLabel: "熊猫",
        columns: 3,
         450,
        style: 'color:red;',
        //flex: 1,
        items: [
            { boxLabel: "熊猫1", id: "cbsmcustomer", name: "cbsmcustomer", inputValue: "1", checked: true },
            {
                boxLabel: "熊猫2", id: "cbsmproducttax", name: "cbsmproducttax", inputValue: "1", checked: true
            },
            {
                boxLabel: "熊猫3", id: "cbsmproductline", name: "cbsmproductline", inputValue: "1", checked: false
            }                    
        ]
        , listeners: {
            change: function (v) {
                var r = v.getChecked();                      
                for (var i = 0; i < r.length; i++)
                {
                    if (r[i].name == "cbsmproducttax")
                    {
                        Ext.getCmp("cbsmcustomer").setValue("1");
                    }
                    if (r[i].name == "cbsmproductline") {
                        Ext.getCmp("cbsmcustomer").setValue("1");
                    }
                }                       
            }
        }
    }
  • 相关阅读:
    uni-app 基础
    react 的理解
    在 ios 系统中 transfrom 的其他属性对 rotate 有影响
    vue-cli3.0 进行项目的部署和构建
    react 生命周期
    typeScrip(五)泛型
    typeScrip(四)函数
    typeScrip(三) 类
    typeScrip(二)变量声明、解构
    javaScript 判断横竖屏
  • 原文地址:https://www.cnblogs.com/xibei666/p/6075721.html
Copyright © 2011-2022 走看看