首页 新闻 赞助 找找看

Jquery Easyui tabs动态加载datagrdi用户控件问题

0
悬赏园豆:10 [已关闭问题] 关闭于 2014-06-18 09:49

这两天在用Jquery Easyui,在用tabs控件加载datagrid用户控件时遇到个问题。就是当我点击tab切换时回加载用户控件,点击比较慢的时候没事,一旦速度快了就报脚本错误,如下:

 我怀疑可能是我点的太快导致datagrid还没加载完毕的原因,但也不太确定。我的代码如下:

 1 $(function () {
 2             //页面加载时先加载当前选中tab                                
 3             var t = $('#income_check_first').tabs('getSelected');            
 4             if (t) {
 5                 var selected_index = $("#income_check_first").tabs("getTabIndex", t);                
 6                 LoadTabs(t.context.id);               
 7             }           
 8             $("#income_check_first").tabs({
 9                 onSelect: function (title) {
10                     var currTab = $('#income_check_first').tabs('getTab', title);                    
11                     var iframe = $(currTab.panel('options').content);                    
12                     var t = $('#income_check_first').tabs('getSelected');
13                     if (t) {                                                                                           
14                         LoadTabs(t.context.id);
15                         ShowOrHideButton(t.context.id);
16                     }                                       
17                 }            
18             });          
19         });
20         //异步加载收件列表控件
21         function LoadTabs(selected_id) {
22             if (selected_id) {               
23                 var url = GetSystemPost('H') + "/Manage/CheckList.ascx?state_flag=" + selected_id + "&flow_flag=1&M=" + Math.random();
24                 $("#sign_list").text("");
25                 $("#approval_list").text("");
26                 $("#rollback_list").text("");                
27                 $.AsynLoadUC(url, null, selected_id, function () { executeByLoad(); });                
28             }
29         }
View Code

 

下面是用户控件页面代码:

 1  $(function () {
 2         $('#datagrid_checklist').datagrid({
 3             url: '/IPRMIS_H_Services.IncomeService.GetIncomeList.cs',
 4             method: 'post',
 5             singleSelect: true,
 6             checkOnSelect: true,
 7             pagination: true,
 8             pageSize: 2,
 9             rownumbers: true,
10             sortOrder: 'asc',
11             sortName: 'INCOME_ID',
12             remoteSort: false,
13             fitColumns:false
14     });
15         var state_flag = "<%=Request.QueryString["state_flag"]%>";
16         var flow_flag = "<%=Request.QueryString["flow_flag"]%>";
17         $('#datagrid_checklist').datagrid('loadData', { total: 0, rows: [] });//清空列表数据               
18         $('#datagrid_checklist').datagrid('load', { state_flag: state_flag, flow_flag: flow_flag, v_state: "REG" });
19     });   
View Code

哪位大神给看看,鼓捣一天了还没出来呢。

冷水寒冰的主页 冷水寒冰 | 初学一级 | 园豆:3
提问于:2014-03-17 21:25
< >
分享
所有回答(1)
0

目测 好像有点小问题,不知道是否 是这个原因。

1. $("#income_check_first").tabs()的声明应该放到var t = $('#income_check_first').tabs('getSelected');的前面,如果还没声明出来,就获取选中,应该会报错。如果页面html中 加了class声明,去掉,统一用js声明。

2.用户控件中,datagrid 如果不要数据,就不要给url,加载了之后,你又要清空,根据多此一举。

Qlin | 园豆:2403 (老鸟四级) | 2014-03-18 08:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册