ExtJS基础知识总结

Posted 风浪子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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,
    width: 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,
    width: 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");
                }
            }                       
        }
    }
}

 

以上是关于ExtJS基础知识总结的主要内容,如果未能解决你的问题,请参考以下文章

ExtJS基础知识总结

ExtJs基础知识总结:DomIFrame和TreePanel

ExtJs基础知识总结:弹窗

线程学习知识点总结

从 extjs 工具提示中删除箭头,

如何使用 extJS 发布 json 数据