extJs 常用到的增,删,改,查操作代码


Posted in Javascript onDecember 28, 2009
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <html> 
    <head> 
        <title>extJs中常用到的增删改查操作的示例代码</title> 
        <!-- CommonJs.jsp 为 ExtJS 引入的路径 --> 
        <%@ include file="../extJs/CommonJs.jsp"%> 
        <script type="text/javascript"><!-- 
        /** 
        * 作     者: 花 慧 
        * 时     间: 2009年12月22日 
        * 内 容: extJs中常用到的增,删,改,查操作 
        */     
        //设置每页显示的行数默认为10 
        var QUERY_PAGE_SIZE = 10; 
        /** 
        * SearchQueryForm():绘制查询表单 
        */ 
        function searchQueryForm() 
        { 
         //form 使用的时候建议设为局部变量,可以通过Ext.getCmp(“”)去获取form 
         var queryForm = null; 
            queryForm = new Ext.FormPanel({ 
                id:'queryForm', //指定queryForm的Id 
                renderTo:'searchPanel', //指向form所在的div层 
                labelWidth:70, //label标签的width占页面的百分比 
                region:'north', 
                border:false, //以显示面板的body元素的边界,虚假隐藏起来(默认为true) 
                badyBorder:false, //显示面板的body元素,假以隐藏它(默认为true的内部边界) 
                labelAlign:'right', //label标签的对齐方式 
                frame:true, //自定义面板的圆形边界,边界宽度1px。默认为false 
                title:'用户信息查询', //form的标题 
                /** 
                *buttons:在FormPanel中按钮的集合 
                */ 
                buttons:[{handler:addForm,text:'新增'}, 
                        {handler:submitForm,text:'查询'}, 
                        {handler:resetForm,text:'重置'}], 
             /** 
             * items: 在FormPanel中不可缺少的部分 
             */ 
             items:[{ 
         /** 
              * layout:extJs容器组件,可以设置它的显示风格 
              * 它的有效值有absolute,accordion,anchor,border,card,fit,form and table 共9种 
              */ 
                 layout:'column', 
                 items:[ 
                     { 
                         columnWidth:.5, 
                         layout:'form', 
                         items:{ 
                             name:'userId', 
                             hiddenName:'userId', 
                             xtype:'textfield', 
                             fieldLabel:'用户编码', 
                             maxLength:'50', 
                             vtype:'specialChar', 
                             anchor:'80%' 
                         } 
                     },{ 
                         columnWidth:.5, 
                         layout:'form', 
                         items:{ 
                             name:'userName', 
                             hiddenName:'userName', 
                             xtype:'textfield', 
                             fieldLabel:'用户名称', 
                             maxLength:'100', 
                             vtype:'specialChar', 
                             anchor:'80%' 
                         } 
                     } 
                 ] 
             }] 
            }); 
        } 
        /** 
        * showUserForm():绘制添加表单 
        */ 
        function showUserForm() 
        { 
         //将变量定义成局部变量,避免每次都生成一个新对象 
            var userForm = null; 
            userForm = new Ext.FormPanel({ 
                id:'conditionForm', 
                labelWidth:'80', 
                labelAlign:'right', 
                border:false, 
                bodyBorder:false, 
             frame:true, 
             items:[ 
                 layout:'column', 
                 items:[ 
                 { 
                     columnWidth:'.8', 
                     items:{ 
                         name:'userInfo.userId', 
                         hiddenName:'userInfo.userId', //hiddenName动态的绑定数据库中对应的字段 
                         xtype:'textField', //xtype可以分为三类,textField为表单域的控件 
                         fieldLabel:'用户编码<font color=red>*</font>',//控件前的文本说明 
                         labelSeparator:'', 
                         blankText : '填写用户编码', //为空的文本框提示信息 
                         allowBlank:false,      //不允许为空 
                         maxLength:'50',      //文本框允许输入的最大的长度,最小的minLength 
                         vtype:'specialChar', 
                         anchor:'80%' 
                     } 
                 },{ 
                     columnWidth:'.8', 
                     items:{ 
                         name:'userInfo.userName', 
                         hiddenName:'userInfo.userName', 
                         xtype:'textField', 
                         fieldLabel:'用户姓名<font color=red>*</font>', 
                         labelSeparator:'', 
                         blankText:'填写用户姓名', 
                         allowBlank:false, 
                         maxLength:'100', 
                         vtype:'specialChar', 
                         anchor:'100%' 
                     } 
                 },{ 
                     columnWidth:'.8', 
                     items:{ 
                         name:'userInfo.pwd', 
                         hiddenName:'userInfo.pwd', 
                         xtype:'textField', 
                         inputType:'password', 
                         fieldLabel:'用户密码<font color=red>*</font>', 
                         labelSeparator:'', 
                         blankText:'填写用户密码', 
                         allowBlank:false, 
                         maxLength:'12', 
                         minLength:'6', 
                         value:'123456', //用户默认的秘密 
                         anchor:'100%' 
                     } 
                 },{ 
                     columnWidth:'.8', 
                     items:{ 
                         name:'rPwd', 
                         hiddenName:'rPwd', 
                         xtype:'textField', 
                         inputType:'password', 
                         fieldLabel:'确认密码<font color=red>*</font>', 
                         labelSeparator:'', 
                         blankText:'二次输入的秘密要相同', 
                         allowBlank:false, 
                         vtype:'pwdRange', 
                         pwdRange:{begin:'userInfo.pwd',end:'rPwd'}, 
                         maxLength:'12', 
                         anchor:'100%' 
                     } 
                 }] 
             ] 
            }); 
        } 
        /** 
        * editUserForm():绘制修改表单 
        */ 
        function editUserForm(){ 
            //将变量定义成局部变量,避免每次都生成一个新对象 
            var userForm = null; 
            userForm = new Ext.FormPanel({ 
                id:'editForm', 
                labelWidth:'80', 
                labelAlign:'right', 
                border:false, 
                bodyBorder:false, 
             frame:true, 
             items:[ 
                 layout:'column', 
                 items:[ 
                 { 
                     columnWidth:'.8', 
                     items:{ 
                         name:'userInfo.userId', 
                         hiddenName:'userInfo.userId', //hiddenName动态的绑定数据库中对应的字段 
                         xtype:'textField', //xtype可以分为三类,textField为表单域的控件 
                         fieldLabel:'用户编码', //控件前的文本说明 
                         labelSeparator:':', 
                         readOnly:true, //文本框只读 
                 disabled:true, //文本框灰色,区别与其他的文本框颜色 
                         blankText : '填写用户编码', //为空的文本框提示信息 
                         allowBlank:false,      //不允许为空 
                         maxLength:'50',      //文本框允许输入的最大的长度,最小的minLength 
                         //字母开头,且只能存在字母与数字长度为2到12位 
                         regex : /^[a-zA-Z]{1}([a-zA-Z0-9]|[_]){1,11}$/, 
                 regexText : '用户编码必须以字母开头,长度2-12位!', 
                         anchor:'90%' 
                     } 
                 },{ 
                     columnWidth:'.8', 
                     items:{ 
                         name:'userInfo.userName', 
                         hiddenName:'userInfo.userName', 
                         xtype:'textField', 
                         fieldLabel:'用户姓名', 
                         labelSeparator:':', 
                         blankText:'填写用户姓名', 
                         allowBlank:false, 
                         maxLength:'100', 
                         //只含有汉字、数字、字母、下划线不能以下划线开头和结尾 
                         regex : /^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$/, 
                 regexText : '只含有汉字、数字、字母、下划线不能以下划线开头和结尾!', 
                         anchor:'90%' 
                     } 
                 },{ 
                  columnWidth:'.2', 
         items:{ 
     hiddenName:"infoFill", 
         name:"infoFill", 
         xtype:'label', 
         html:'<font color=red>*</font>', 
         labelSeparator:'', 
         anchor:'100%' 
         } 
                 },{ 
                     columnWidth:'.8', 
                     items:{ 
                         name:'userInfo.pwd', 
                         hiddenName:'userInfo.pwd', 
                         xtype:'textField', 
                         inputType:'password', 
                         fieldLabel:'用户密码<font color=red>*</font>', 
                         labelSeparator:':', 
                         blankText:'填写用户密码', 
                         allowBlank:false, 
                         maxLength:'12', 
                         minLength:'6', 
                         anchor:'90%' 
                     } 
                 },{ 
                  columnWidth:'.2', 
         items:{ 
     hiddenName:"infoFill", 
         name:"infoFill", 
         xtype:'label', 
         html:'<font color=red>*</font>', 
         labelSeparator:'', 
         anchor:'100%' 
         } 
                 },{ 
                     columnWidth:'.8', 
                     items:{ 
                         name:'rPwd', 
                         hiddenName:'rPwd', 
                         xtype:'textField', 
                         inputType:'password', 
                         fieldLabel:'确认密码<font color=red>*</font>', 
                         labelSeparator:':', 
                         blankText:'二次输入的秘密要相同', 
                         allowBlank:false, 
                         //在extCommon.js文件中定义二次输入的密码相同验证pwdRange 
                         // vtype为验证的方法,如果是通用的验证,请在方法中定义,如果是特例,可以使用regex 
                         vtype:'pwdRange', 
                         pwdRange:{begin:'userInfo.pwd',end:'rPwd'}, 
                         maxLength:'12', 
                         anchor:'90%' 
                     } 
                 },{ 
                  columnWidth:'.2', 
         items:{ 
     hiddenName:"infoFill", 
         name:"infoFill", 
         xtype:'label', 
         html:'<font color=red>*</font>', 
         labelSeparator:'', 
         anchor:'100%' 
         } 
                 }] 
             ] 
            }); 
        } 
        /** 
        * onReady:该文件准备好(在onload和图像加载之前) 
        */ 
        Ext.onReady(function(){ 
            searchQueryForm(); 
            //获取查询form 
            var queryForm = Ext.getCmp("queryForm").getForm(); 
         /** 
         * layout设置为border表示页面将划分为东南西北中五个部分 
         * 这里表示centerPanel放在中间 
         */ 
            var layout = new Ext.Viewport({ 
                layout:'border', 
                defaluts:{border:false,bodyBorder:false,activeTab:0}, 
          items:[queryForm,{id:'centerPanel',region:'center',height:document.body.clientHeight,contentEl:'mainDiv'}] 
            }); 
            //页面加载的时候,默认数据查询页面显示用户信息列表 
            submitForm(); 
        }); 
        //查询信息 
        var store = new Ext.data.Store({ 
            url:'../user/doGetPageList.action', //action的路径 
            reader:new Ext.data.JsonReader({ 
                root:'userList', //从struts2.0里面传递过来的参数:用户的集合 
                totalProperty:'rowTotal', //从struts2.0里面传递过来的参数:总共的信息的行数 
                id:'userId', 
                successPropery:'success'}, 
                ['userId','userName','pwd'] 
            ) 
        }); 
        /** 
        * callback:调用的函数 
        */ 
        function getMsg() 
        { 
        } 
        /** 
        * 模糊查询 
        */ 
        function submitForm() 
        { 
         //初始化grid 
            var grid = null; 
            //复选框 
            var sm = new Ext.grid.CheckboxSelectionModel({ 
                dataIndex:'id', 
                width:'20' 
            }); 
            /** 
         *  sortabel:(可选)如果真要排序允许在此列 
         *  renderer:(可选)用于生成给定数据值单元格的HTML标记的功能。如果没有指定,默认渲染器使用的原始数据值。 
         * 在renderer:function createButton(参数)这里的参数可以没有或多个 
         *  鼠标移动图片上变成"手"是:style="cursor:hand" 
         */ 
            var colM = new Ext.grid.ColumnModel( 
                [sm,{header:'用户账号',dataIndex:'userId',align:'center',sortable:true}, 
                {header:'用户姓名',dataIndex:'userName',align:'center',sortabel:true}, 
                {header:'删除',dataIndex:'id',align:'center',renderer:function createButton(){ 
                    return '<img alt="删除" style="cursor:hand" style="cursor:hand" src="../images/hh_framework/ico_delete.gif" src="images/hh_framework/ico_delete.gif" />';}}, 
                {header:'编辑',dataIndex:'userId',align:'center',renderer:function createButton(userId, metadata, record){ 
                    return '<a style="cursor:hand" style="cursor:hand" onclick=updateForm('+userId+') >'+record.get('userName')+'的信息修改'+'</a>';}}] 
            ); 
         //获取查询表单 
            var form = Ext.getCmp("queryForm").getForm(); 
            //判断是否通过验证,如果没有请直接关闭 
            if(!form.isValid()) 
            { 
                Ext.Msg.alert("系统提示","查询数据不正确,请确认输入!"); 
                return ; 
            } 
            //差选queryform中查询的数据参数 
            store.baseParams = form.getValues(); 
            /** 
            * getLimitCount():获取分页每页行数,如果不传值,则会取默认值 
            * Start表示读取数据的起始位置、limit表示每次读取多少条数据 
            * callback:getMsg 表示回调时,执行函数 getMsg。可省略 
            */ 
            store.load({params:{start:0,limit:getLimitCount()}, callback:getMsg}); 
            if(grid == null) 
            { 
                grid = new Ext.grid.EditorGridPanel({ 
                    renderTo:"mainDiv", //grid查询结果指向显示的div层 
                    title:"用户查询结果", //grid标题 
                    width:document.body.clientWidth, //设置grid的width的值 
                    hight:document.doby.clientHight-100,//设置hight的值 
                    viewConfig:{forceFit:true}, //设置列数的充满窗口 
                    loadMask:true,                //在加载数据时的遮罩效果 
                    stripeRows:true, //隔行换色 
                    region:'center', //这个是设置在ViewPort中显示的位置 
                    cm:colM, //定义的列 
                    ds:store, //定义的数据源 
                    border:false, 
                    bodyBorder:false, 
                    sm:sm, //定义的复选框 
                    //listeners:包含一个或多个事件处理程序被添加到这个对象初始化过程中 
                    listeners:{cellclick:renderPage}, 
                    /** 
                 * bbar: new Ext.PagingToolbar部分是定义分页工具栏, 
                 * 这里的分页控件栏还用到了1个自己定义的插件,就是可以选择每页显示多少条的 
                    * plugins : [new Ext.ux.PageSizePlugin()],参考Ext的API 
                 * 要实现分页,后台必须有total属性,表示共多少条数据 
                 */ 
                    bbar:new Ext.PagingToolbar({ 
                        items:[{ 
                            xtype:'button', 
                            text:'删除所选', 
                            handler:delUserAll, //自定义执行动 
                            pressed:true 
                        }], 
                        id:'pageToolBar', 
                        pageSize:QUERY_PAGE_SIZE, //每页的行数默认为:QUERY_PAGE_SIZE 
                        store:store, 
                        displayInfo:true, 
                        displayMsg:'显示第{0}条到{1}条记录,共{2}条记录', 
                        emptMsg:'没有记录', 
                        plugins:[new Ext.ux.PageSizePlugin()] 
                    }) 
                }); 
            } 
            grid.render(); 
        } 
        /** 
        * 增加用户信息 
        */ 
        function addForm() 
        { 
            showUserForm(); 
            //获取绘制用户窗口的form 
            var userForm = Ext.getCmp("conditionForm").getForm(); 
            //初始化用户添加的窗口的Id 
            var addUserWin = Ext.getCmp("addWin"); 
            if(addUserWin == null) 
            { 
                addUserWin = new Ext.Window({ 
                    width:500, //初始窗口的width的值 
                    x:100, //窗口的初始化x方向的位置 
                    y:100, //窗口的初始化y方向的位置 
                    plain:true, 
                    modal:true, //模式窗口,默认为false 
                    closeAction:"hide", //默认窗口隐藏 
                    resizable:false, //窗口的大小不允许拖动,默认为true 
                    id:"addWin", //指定用户添加窗口的Id 
                    items:[userForm], 
                    buttons:[ 
                 {text:'保存',handler:function(){ 
                     if(userForm.form.isValid()){ 
                      userForm.form.doAction('submit',{ 
                             url:'../user/addUser.action', 
                             params:{roleId:userForm.form.findField('userId').getValue()}, 
                             method:'post', //数据提交的方式:有两种get,post 
                             waitTitle:'提示信息', //数据提交等待的滚动条 
                             waitMsg:'保存数据,请稍候...', //滚动条提示的内容 
                          success:function(form,action){ 
                          var message = action.result.message; 
                              if(message == null){ 
                              Ext.Msg.alert("提示信息","用户信息添加成功!"); 
                              store.reload(); 
                              addUserWin.hide(); 
                              }else{ 
                              Ext.Msg.alert("提示信息",message); 
                              } 
                          }, 
             failure:function(form,action){ 
             Ext.Msg.alert('提示信息',"新用户添加失败!"); 
             return; 
             } 
             }); 
                 }else { 
                     Ext.Msg.alert("提示信息","表单有错误,请正确填写!"); 
                 } 
                 }}, 
                 {handler:function(){userForm.form.reset();},text:'重置'}, 
                 {handler:function(){addUserWin.hide();},text:'关闭'}] 
                }); 
            } 
            addUserWin.show(); 
        } 
        /** 
        * 删除用户信息 
        */ 
        function delForm(userId) 
        { 
            Ext.Msg.confirm('提示信息','你确定要执行删除操作吗?',function(btn){ 
                if(btn == 'yes') 
                { 
                     /** 
                 * 数据提交的一种方式:Ext.Ajax.request({}); 
                 */ 
                    Ext.Ajax.request({ 
                        url:'../user/delUser.action', 
                        params:{userId:userId}, 
                        method:'post', 
                        success:function(o) 
                        { 
                            var info = Ext.decode(o.responseText); 
                            Ext.Msg.alert("提示信息",info.message); 
                            store.reload(); 
                            return ; 
                        }, 
                        failure:function(form,action) 
                        { 
                            Ext.Msg.alert("提示信息","用户信息删除失败!"); 
                            return ; 
                        } 
                    }); 
                } 
            }); 
        } 
        /** 
        * 批量删除事件 
        */ 
        function delUserAll() 
        { 
         //grid中复选框被选中的项 
             var rows = grid.getSelectionModel().getSelections(); 
             //user_id:所有选中的用户Id的集合使用','隔开,初始化为空 
             var user_id = ''; 
         for(var i = 0;i<rows.length;i++) 
         { 
             if(i>0) 
             { 
                 user_id = user_id+','+rows[i].get('userId'); 
             }else{ 
                 user_id = user_id+rows[i].get('userId'); 
             } 
         } 
         //没有选择要执行操作的对象 
             if(user_id == "") 
             { 
                 Ext.Msg.alert("提示信息","请选择要删除的对象"); 
                 return ; 
             }else{ 
                 Ext.Msg.confirm("提示信息","请确定要执行删除操作吗?",function (btn){ 
                     if(btn == 'yes') 
                     { 
                         Ext.Ajax.request({ 
                             url:"../user/delAllUser.action", 
                             params:{id:user_id}, 
                             method:'post', 
                             success:function(o){ 
                                 var info = Ext.decode(o.responseText); 
                                 Ext.Msg.alert("提示信息",info.message); 
                                 store.reload(); 
                                 return ; 
                             }, 
                             failure:function(form,action){ 
                                 Ext.Msg.alert("提示信息","用户信息删除失败!"); 
                             } 
                         });     
                     } 
                 }); 
             } 
        } 
        /** 
        * 修改用户信息 
        * 参数userId:修改对象的Id 
        */ 
        function updateForm(userId) 
        { 
            editUserForm(); 
            var userForm = Ext.getCmp("editForm").getForm(); 
            Ext.Ajax.request({ 
                url:'../user/doGetOne.action', 
                params:{userId:userId}, 
                method:'post', 
                //从struts2.0里返回的参数 
                success:function(o) 
                { 
                 //读取action传递过来的对象参数 
                 //docode:解码(解析)一个JSON字符串对象 
                    var user = Ext.decode(o.responseText); 
                    //用户编辑窗口的打开 
                    editUser(user); 
                    //将对象信息显示在对应的form文本框中 
                    userForm.form.findFiled('userInfo.userId').setValue(user.userInfo.userId); 
                    userForm.form.findFiled('userInfo.userName').setValue(user.userInfo.userName); 
                    userForm.form.findFiled('userInfo.pwd').setValue(user.userInfo.pwd); 
                    userForm.form.findFiled('rPwd').setValue(user.userInfo.pwd); 
                } 
            }); 
        } 
        /** 
        * 用户信息编辑窗口 
        */ 
        function editUser(user){ 
            var userForm = Ext.getCmp("editForm").getForm(); 
            //得到用户编辑的窗口的对象 
            var editUserWin = Ext.getCmp("editWin"); 
            //当为空的时候将进行实例化 
            if(editUserWin == null) 
            { 
                editUserWin = new Ext.Window({ 
             id:'editWin', 
                width:500, 
                x:100, 
                y:100, 
                modal:true, 
                resizable:false, 
                closeAction:"hide", 
                title:'用户信息修改', 
                items:[userForm], 
                buttons:[ 
                    {text:'保存',handler:function(){ 
                        if(userForm.form.isValid()) 
                        { 
                         /** 
                         * 数据提交的第二种方式:form.doAction('submit',{}); 
                         */ 
                            userForm.form.doAction('submit',{ 
                                url:'../user/updUser.action', 
                                params:{userId:userForm.form.findField('userInfo.userId').getValue()}, 
                                method:'post', 
                                waitTitle:'提示信息', 
                                waitMsg:'数据处理中,请稍后....', 
                                //从struts2.0里不需要返回的参数 
                                success:function(form,action) 
                                { 
                                    Ext.Msg.alert("提示信息","用户信息修改成功!"); 
                                    //查询的数据集合store刷新,实现页面自动刷新的效果 
                                    store.reload(); 
                                    //将窗口关闭时候,window. hide()方法是隐藏,因此并不会真正销毁窗口对象 
                                    editUserWin.hide(); 
                                    return ; 
                                }, 
                                failure:function(form,action) 
                                { 
                                    Ext.Msg.alert("提示信息","用户信息修改失败"); 
                                    return ; 
                                } 
                            }); 
                        }else 
                        { 
                            Ext.Msg.alert("提示信息","表单有错误,请重新填写!"); 
                        } 
                    }}, 
                    {text:'关闭',handler:function(){editUserWin.hide();}}] 
             }); 
            } 
            editUserWin.show(); 
        } 
        /** 
        * 重置页面查询表单 
        */ 
        function resetForm() 
        { 
            Ext.getCmp("queryForm").getForm().reset(); 
        } 
        /** 
        * 每行单元格点击事件 
        */ 
        function renderPage(grid,rowIndex,columnIndex,e) 
        { 
         //触发事件的对象的Id 
            var id = grid.getStore().getAt(rowIndex).data['userId']; 
            switch(columuIndex) 
            { 
                case 3:delForm(id); 
                     break; 
             /** 
                *case 4:updateForm(id); 
                *     break; 
                */ 
             default:break; 
            } 
        } 
// --></script> 
    </head> 
    <body> 
        <div id="searchPanel"> 
        </div> 
        <div id="centerPanel"> 
        </div> 
        <div id="mainDiv"></div> 
    </body> 
</html>
Javascript 相关文章推荐
js实现图片放大和拖拽特效代码分享
Sep 05 Javascript
js获取客户端操作系统类型的方法【测试可用】
May 27 Javascript
深入浅析JavaScript中的arguments对象(强力推荐)
Jun 03 Javascript
jquery attr()设置和获取属性值实例教程
Sep 25 Javascript
实现隔行换色效果的两种方式【实用】
Nov 27 Javascript
jQuery如何跳转到另一个网页 就这么简单
Dec 28 Javascript
vue 请求后台数据的实例代码
Jun 22 Javascript
Vue组件选项props实例详解
Aug 18 Javascript
Angular实现点击按钮后在上方显示输入内容的方法
Dec 27 Javascript
JS实现关键词高亮显示正则匹配
Jun 22 Javascript
在vue中更换字体,本地存储字体非引用在线字体库的方法
Sep 28 Javascript
用JS写一个发布订阅模式
Nov 07 Javascript
firefox和IE系列的相关区别整理 以备后用
Dec 28 #Javascript
javascript 显示当前系统时间代码
Dec 28 #Javascript
javascript 鼠标悬浮图片显示原图 移出鼠标后原图消失(多图)
Dec 28 #Javascript
javascript options属性集合操作代码
Dec 28 #Javascript
javascript 动态调整图片尺寸实现代码
Dec 28 #Javascript
jquery $(document).ready() 与window.onload的区别
Dec 28 #Javascript
jQuery的强大选择器小结
Dec 27 #Javascript
You might like
PHP在线生成二维码(google api)的实现代码详解
2013/06/04 PHP
php实现监听事件
2013/11/06 PHP
thinkphp学习笔记之多表查询
2014/07/28 PHP
laravel5使用freetds连接sql server的方法
2018/12/07 PHP
laravel5.6 框架邮件队列database驱动简单demo示例
2020/01/26 PHP
使Ext的Template可以解析二层的json数据的方法
2007/12/22 Javascript
JavaScript 比较时间大小的代码
2010/04/24 Javascript
javascript中关于&amp;&amp; 和 || 表达式的小技巧分享
2015/04/10 Javascript
jquery实现未经美化的简洁TAB菜单效果
2015/08/28 Javascript
jquery+CSS3实现淘宝移动网页菜单效果
2015/08/31 Javascript
AngularJS数据源的多种获取方式汇总
2016/02/02 Javascript
获取阴历(农历)和当前日期的js代码
2016/02/15 Javascript
require、backbone等重构手机图片查看器
2016/11/17 Javascript
关于Vue.js一些问题和思考学习笔记(2)
2016/12/02 Javascript
jQuery实现的仿百度,仿谷歌搜索下拉框效果示例
2016/12/30 Javascript
bootstrap实现的自适应页面简单应用示例
2017/03/09 Javascript
Javascript es7中比较实用的两个方法示例
2017/07/21 Javascript
javascript实现循环广告条效果
2017/12/12 Javascript
JavaScript JMap类定义与使用方法示例
2019/01/22 Javascript
详解微信UnionID作用
2019/05/15 Javascript
javascript实现自由编辑图片代码详解
2019/06/21 Javascript
vue和小程序项目中使用iconfont的方法
2020/05/19 Javascript
wxpython 学习笔记 第一天
2009/03/16 Python
python统计文本字符串里单词出现频率的方法
2015/05/26 Python
Python中Django发送带图片和附件的邮件
2017/03/31 Python
python2.7实现邮件发送功能
2018/12/12 Python
在tensorflow中设置使用某一块GPU、多GPU、CPU的操作
2020/02/07 Python
在keras下实现多个模型的融合方式
2020/05/23 Python
pyCharm 设置调试输出窗口中文显示方式(字符码转换)
2020/06/09 Python
Ivory Isle Designs美国/加拿大:婚礼和活动文具公司
2018/08/21 全球购物
产品推广策划方案
2014/05/10 职场文书
开工典礼策划方案
2014/05/23 职场文书
2014教师研修学习体会
2014/07/08 职场文书
官僚主义现象查摆问题整改措施
2014/10/04 职场文书
Vue和Flask通信的实现
2021/05/19 Vue.js
OpenCV-Python实现轮廓的特征值
2021/06/09 Python