惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Check Point Blog
美团技术团队
Microsoft Security Blog
Microsoft Security Blog
大猫的无限游戏
大猫的无限游戏
T
Tailwind CSS Blog
G
Google Developers Blog
博客园 - 聂微东
爱范儿
爱范儿
博客园 - 叶小钗
J
Java Code Geeks
月光博客
月光博客
博客园 - Franky
MongoDB | Blog
MongoDB | Blog
The Cloudflare Blog
宝玉的分享
宝玉的分享
博客园 - 【当耐特】
Microsoft Azure Blog
Microsoft Azure Blog
The GitHub Blog
The GitHub Blog
小众软件
小众软件
WordPress大学
WordPress大学
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Vercel News
Vercel News
Y
Y Combinator Blog
量子位

博客园 - zjy

ligerui.grid.extend.rowSpan 用户中心 - 博客园 用户中心 - 博客园 OnClientClick 从通用分页存储过程[ROWCOUNT方式]抽出适合自己需求的分页过程 防SQL注入 用户中心 - 博客园 [CS0030错误]奇怪:难不成ChangePassword也是系统用名? DataTable中统计列中不同行问题 推荐个C#不错的开发工具(新版本SharpDevelop) 安装IE7 Visual Studio出现调试不够权限的解决办法 求助:UltraWebGrid当用xml paging(ajax)时,如何取其子表的band的index或者子表行信息?(NetAdvantage) 解决infragistics的webgrid嵌套子表列名在ajax下(xml paging)出现的乱码问题 修改上传文件控件样式并实现上传文件功能 用页传值方式解决模态窗口的Response.WriteFile文件下载 DataTable添加列时容易被忽略的问题! 重构oninit,应用在模式窗口的方法 获取一个星期时间段的具体日期 Web导出Word需要添加头文件 - zjy - 博客园
解决UltraWebGrid分页时出现的脚本错误(Infragistics的Bug)
zjy · 2006-11-17 · via 博客园 - zjy

出错图片如下:

出现的情况是在UltraWebGrid分页操作时,如果最后一页的行数小于UltraWebGrid设置的page数,而你分页前选择的行是最后一行没有的行,就会出现getRow为空的错误提示.(不知道大家明白我的意思没有-_-!)
   因为这是Infragistics本身的bug问题(不知道新的06V3版本有没有这个情况,我是用05V3版本),所以只有修改对应的脚本了,对应的脚本:(那段出错function,在脚本文件ig_WebGrid_xml.js中)

 1function igtbl_requestSortComplete(gn)
 2{
 3    var g=igtbl_getGridById(gn);    
 4    if(ig_csom.IsIE)
 5    {
 6        var node=g.XmlResp.selectSingleNode("form");
 7        if(!node)
 8            node=g.XmlResp;
 9        node=node.selectSingleNode("xml/UltraWebGrid/Body/Rows");
10        var rows=g.Rows;
11        if(g.RowToQuery)
12        {
13            rows=g.RowToQuery.Rows;
14            for(var i=0;i<rows.Band.Index;i++)
15                node=node.selectSingleNode("Row/Rows")
16        }
17        rows.Node.parentNode.replaceChild(node,rows.Node);
18        rows.Node=node;
19        rows.SelectedNodes=node.selectNodes("Row");
20        var arIndex=-1,acColumn=null,acrIndex=-1,aRows=null;
21        if(g.oActiveRow && g.oActiveRow.OwnerCollection==rows)
22            arIndex=g.oActiveRow.getIndex();
23        if(g.oActiveRow && g.oActiveRow.Band.Index>=rows.Band.Index)
24            g.setActiveRow(null);
25        if(g.oActiveCell && g.oActiveCell.Row.OwnerCollection==rows)
26        {
27            acColumn=g.oActiveCell.Column;
28            acrIndex=g.oActiveCell.Row.getIndex();
29        }
30        if(g.oActiveCell && g.oActiveCell.Band.Index>=rows.Band.Index)
31            g.setActiveCell(null);
32        rows.dispose();
33        rows.length=rows.SelectedNodes.length;
34        rows.render();
35        if(arIndex!=-1)
36        if(rows.length > arIndex)  //大家注意这里36行if(rows.length > arIndex)是我后添加的
37            rows.getRow(arIndex).activate();  //出错问题的地方,因为是直接读取上一页的行数,所以会出错,所以我在上面加了个判断.
38        if(acColumn)
39        {
40            if(acrIndex==-1)
41            {
42                if(rows.AddNewRow)
43                    rows.AddNewRow.getCellByColumn(acColumn).activate();
44            }
45            else if(acrIndex<rows.length)
46                rows.getRow(acrIndex).getCellByColumn(acColumn).activate();
47        }
48        g.RowsRetrieved=rows.length;
49        if(rows.Band.Index==0)
50        {
51            if(g._scrElem)
52            {
53                igtbl_scrollTop(g._scrElem,0);
54                g.alignDivs();
55            }
56            else
57                igtbl_scrollTop(g.DivElement,0);
58        }
59    }
60}

注:length和arIndex表示不一样的意思,rows.length为页面总的行数,而arIndex表示你选择的行号,而行号是从0开始.