zoukankan      html  css  js  c++  java
  • 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="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>
      
  • 相关阅读:
    编程之美1的个数统计
    组合以及可以重复的排列
    Swing之图书管理系统
    经常熬夜的人一定要看
    利用SharePoint Designer开发可循环工作流
    SharePoint Software DownLoad Address 微软软件 下载地址
    日期验证 正则表达式
    时间验证 正则表达式
    Reporting Services SharePoint AddIn Setup Problems
    char、varchar、text和nchar、nvarchar、ntext的区别
  • 原文地址:https://www.cnblogs.com/vazumi/p/2501412.html
Copyright © 2011-2022 走看看