ligerui一個dialog彈div的簡單例子(1.1.9)


在線測試例子: http://vazumi.net.s1.kingidc.net/example/form.htm

原理:

  • • 為啥要彈div,因為iframe這種頁面彈窗,多少涉及到內存泄漏,多次彈窗之后瀏覽器內存占用居高不下
  • • 彈div沒啥技術要點,關閉事件是用hide()來隱藏,初始化div隱藏外面多套一層div來控制
  • • 這個例子的保存和刪除都沒有提交數據庫,只是前台grid改寫
  • • 彈窗div里面的文本框有用到非空驗證
  • • 第二次之后打開dialog用show,避免重復創建liger對象

     

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
        <title></title>
        <link href="../lib/ligerUI1.1.9/skins/aqua/css/ligerui-all.css" rel="stylesheet" type="text/css" />
        <link href="../lib/ligerUI1.1.9/skins/ligerui-icons.css" rel="stylesheet" type="text/css" />                    
        <script src="../lib/jquery/jquery-1.5.2.min.js"  type="text/javascript"></script>
        
        <script src="../lib/ligerUI1.1.9/js/core/base.js" type="text/javascript"></script> 
        <script src="../lib/ligerUI1.1.9/js/ligerui.min.js" type="text/javascript"></script>    
          
        <script src="../lib/jquery-validation/jquery.validate.min.js" type="text/javascript"></script> 
        <script src="../lib/jquery-validation/jquery.metadata.js" type="text/javascript"></script>
        <script src="../lib/jquery-validation/messages_cn.js" type="text/javascript"></script>     
        
       <script type="text/javascript">      
            
            //-----------------------全局變量------------------------------
            var grid=null;
            var dlgedit=null;
            var Validator = null;
            var edittype=null;
            var rowi=0;
                    
            $(function () {                  
                                                
               //--------------------grid定義-------------------------------
               grid=$("#maingrid").ligerGrid({
                    checkbox: true,
                    rownumbers:true,
                    toolbar: { items: [{ text: '新增',id:'add', icon:'add',click: itemclick}]},                                                                            
                    columns: 
                    [                  
                        { display: '編號', name:'AREAID'},
                        { display: '名稱', name:'AREANAME'},
                        { display: '操作', render:function(r,i) {return '<a href="#" onclick="f_edit(\'modify\','+i+')">編輯</a>';}} 
                    ],                
                    url: "/service/DataHandler.ashx?View=arealist",
                    usePager:false
                });
    
                //--------------------form驗證-------------------------------
                $.metadata.setType("attr", "validate");
                Validator = $("form").validate({
                    debug: false,
                    errorPlacement: function (l, dom){dom.ligerTip({ content: l.html(), appendIdTo: l});},
                    success: function (l){l.ligerHideTip();}
                });
                                     
                $("form").ligerForm();
                $("#pageloading").hide();      
            });
            
            //-----------------------------toolbar 按鈕事件----------------------------        
            function itemclick(item)
            {               
                if(item.id)
                {
                    switch (item.id)
                    {   
                        case "add":edittype="add"; f_edit("add",0);return;                                                                                
                    }   
                }            
            }        
            
            //--------------------------保存事件,更新grid-------------------------------                
            function f_save()
            {
                $("form").append($(".l-dialog"));
                if (!Validator.form()) return false;
                
                if (edittype=="add")            
                    grid.addRow({
                        AREAID : $("#txtid").val(),                
                        AREANAME: $("#txtname").val()
                    });          
                else
                {
                    var ss=grid.getRowObj(rowi);
                    grid.updateRow(ss,{
                        AREAID : $("#txtid").val(),                
                        AREANAME: $("#txtname").val()                
                    });            
                }                        
                dlgedit.hide();
            }
            
            //-------------------------彈窗事件---------------------------------
            function f_edit(type,rowindex)
            {
                if (type!="add")
                {
                    $("#txtid").val(grid.getRow(rowindex).AREAID);
                    $("#txtname").val(grid.getRow(rowindex).AREANAME);
                }
                else
                {
                    $("#txtid").val("");
                    $("#txtname").val("");                
                }
                edittype=type;
                rowi=rowindex;
                if (dlgedit==null)
                {
                    dlgedit=$.ligerDialog.open({
                                        target:$("#divedit"),
                                        buttons: [  { text: '保存', onclick: function (i, d) { f_save(); }}, 
                                                    { text: '關閉', onclick: function (i, d) { $("input").ligerHideTip(); d.hide(); }} 
                                                 ]                                   
                                   });
                                    
                    $(".l-dialog-close").bind('mousedown',function()  //dialog右上角的叉
                    {                    
                        $("input").ligerHideTip(); 
                        dlgedit.hide();
                    });                               
                      
                    $(".l-dialog-title").bind('mousedown',function()   //移動dialog時,隱藏tip
                    {
                        $("input").ligerHideTip();                    
                    });                                           
                }   
                else
                {
                    dlgedit.show();
                }        
                            
            }                                                                                       
        </script>        
             
    </head>
    <body style="padding:20px 20px 20px 20px; overflow:hidden;">
        
        <div class="l-loading" style="display:block" id="pageloading" ></div>
        <div style="width:80%;">
            <h2>
                這是一個dialog彈div的簡單例子(1.1.9)
            </h2>
            <div style="padding-left:20px">
                <br />
                <li>• 為啥要彈div,因為iframe這種頁面彈窗,多少涉及到內存泄漏,多次彈窗之后瀏覽器內存占用居高不下</li>
                <li>• 彈div沒啥技術要點,關閉事件是用hide()來隱藏,初始化div隱藏外面多套一層div來控制</li>
                <li>• 這個例子的保存和刪除都沒有提交數據庫,只是前台grid改寫</li>
                <li>• 彈窗div里面的文本框有用到非空驗證</li>
                <li>• 第二次之后打開dialog用show,避免重復創建liger對象</li>
            </div>
            <hr />
            <div id="maingrid"></div>
            
        </div>
        
        <form id="form1" name="form1">
        <div style=" display:none">
            <div id="divedit">                
                編號<input id="txtid" name="txtid"    ltype="text" runat="server" type="text" validate="{required:true}" />
                名稱<input id="txtname" name="txtname"  ltype="text" runat="server" type="text" validate="{required:true}" />    
            </div>
        </div>
        </form>
    </body>
    </html>
    

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM