您的位置:首页 > 其它

dwz框架的table,页面初始化用ajax获取并设置表格内容后,表格没有点击事件等。

2013-10-21 09:59 731 查看
现象:调试时百思不得其解,在dwz.stable.js中,加一句alert,就有效果了,去掉之后又没了。

后来在dwz.stable.js中alert了一下tbody的内容,发现页面表格内容还是原来静态的内容,而不是ajax请求到的内容。

因此,估计是ajax异步造成的问题。

因为经观察,运行顺序是先加载jsp页面,然后执行页面的  $(function(),然后才会初始化dwz框架。

我的页面加载完后自动调用ajax获取内容并设置表格,由于ajax默认为异步,所以此时表格内容可能还没有设置,就已经开始初始化dwz.table了,因此在dwz.stable.js中调试,看到的还是table中的静态内容。

后来,把ajax请求改为同步,所有都正常了,就加一句话的问题呀!!! 搞了大半天。

  $(function()

  {

    //alert('a');

    //alert('b');

    sys_menu__dispdata(1,20);

    

  });

  //显示菜单列表数据

  function sys_menu__dispdata(curpage,perpage)

  {

    try{

        //!!获取本页面的总div,然后从里面获取元素。因为dwz框架所有页面都在index中,所以id,class可能会重复

        var $div=$('#div_sys_menu');  

        //alert($div);      

        //获取当前用户

        var em_id=$div.find("#edt_userid").val();

        //alert(em_id);  

        

        $.ajax({

          type:"POST",

          url:"oa_sys_manage",

          data:"type=menu_list&curpage="+ curpage + "&perpage=" + perpage,

          dataType:"json",
          async:false,

          success:function(data){

            //alert("ajax over...");

            //alert(data[0].rs.head.counts);

            //alert(data[0].rs.body.length);

            var rsdata=data[0].rs.body;

            //alert(rsdata.length);

            //填充分页面板

            $div.find('#page_counts').text(data[0].rs.head.counts);

            $div.find('#page_perpage').text(data[0].rs.head.perpage);

            $div.find('#page_pages').text(data[0].rs.head.pages);

            $div.find('#page_curpage').text(data[0].rs.head.curpage);

            //填充分页数据

            $div_menulist=$div.find("#tbl_menulist_body");

            var shtml="";//<div style='border-style:solid;border-color:#C8C8F7;border-width:1px;'>\r\n";            

            for(var i=0;i<rsdata.length;i++)

            {

              try

              {

                  var tbl_row;

                  tbl_row= "<tr target='' rel='0'>\r\n";          

                  tbl_row+="  <td align='left'>" + rsdata[i].right_bm + "</td>\r\n";

                  var menu_name_color=rsdata[i].right_bm.length==3?"<font color='red'>" + rsdata[i].meunname + "</font>":rsdata[i].meunname;

                  tbl_row+="  <td align='left' >" + menu_name_color + "</td>\r\n";

                  tbl_row+="  <td align='left' >" + rsdata[i].link_addr + "</td>\r\n";

                  tbl_row+="  <td align='left' >" + rsdata[i].imgname + "</td>\r\n";       

                  tbl_row+="  <td align='left' >" + rsdata[i].imgnameopen + "</td>\r\n";    

                        

                  tbl_row+="</tr>\r\n";

                  //追加到shtml中                  

                  shtml+=tbl_row;

              }

              catch(e)

              {

                alert(e.message);

              }

            }

            //shtml+="</div>\r\n";

            //alert(shtml);

            $div_menulist.html(shtml);

            //$('#div_sys_menu').find('.gridTbody').find("table").html(shtml);

            //!!调用dwz框架的初始化diaolog部分。

            //子页面$(function)加载完毕后js生成的<a target='dialog'>,要再初始化一下。否则不出对话框

            //alert('data初始化完成');

          }

        });

    }catch(e){alert(e.message);}

  }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: