FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 12716|回复: 15
打印 上一主题 下一主题

索引超出数组的界限,求解决方案??????????

[复制链接]
跳转到指定楼层
楼主
发表于 2012-4-23 10:53:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
外部添加删除按钮点击触发Click事件,删除选中的项之后,再更新选中行的关键字段到另外一张表

try
        {
            int selectedCount = Grid1.SelectedRowIndexArray.Length;
            int pageIndex = Grid1.PageSize * (Grid1.PageIndex);

            if (selectedCount > 0)
            {
                for (int i = 0; i < selectedCount; i++)
                {
                    int rowIndex = Grid1.SelectedRowIndexArray + pageIndex;
                    String id = Grid1.DataKeys[rowIndex][0].ToString();
                    string sql = "delete from tb_Planning where id='" + id + "'";
                    db.ds(sql);
                }
                以上执行没有问题,可以正常删除
-------------------------------------------------------------------------------------------------------------
               以下执行到 String XMMX = Grid1.DataKeys[rowIndex][3].ToString();  的时候抛出异常索引超出数组的界限;求解怎么解决?


                for (int i = 0; i < selectedCount; i++)
                {
                    int rowIndex = Grid1.SelectedRowIndexArray + pageIndex;
                    String XMMX = Grid1.DataKeys[rowIndex][3].ToString();                                 
                    string sql = "update db_Order set loaded='true' where id='" + XMMX + "'";
                    db.ds(sql);
                }

                    string strsql = "select * from tb_Planning";
                    ds = db.ds(strsql);
                    Grid1.DataSource = ds.Tables[0];
                    Grid1.DataBind();
                    Alert.ShowInTop("删除成功!", MessageBoxIcon.Warning);
            }
            else
            {
                Alert.ShowInParent("未选中所要删除的行!");
            }
        }
        catch
        {

        }

沙发
发表于 2012-4-23 11:07:20 | 只看该作者
DataKeys怎么写的?
板凳
 楼主| 发表于 2012-4-23 11:12:26 | 只看该作者
DataKeyNames="Id,Name“
地板
 楼主| 发表于 2012-4-23 11:13:55 | 只看该作者
DataKeyNames="Id,Name,这里是不是要加上第3列字段的名字“?

Grid1.DataKeys[rowIndex][3].ToString();      
5#
发表于 2012-4-23 11:17:44 | 只看该作者
7107135 发表于 2012-4-23 11:13
DataKeyNames="Id,Name,这里是不是要加上第3列字段的名字“?

Grid1.DataKeys[rowIndex][3].ToString();  ...

嗯,要加第三列字段名,还有,datakeys是从0开始的
6#
 楼主| 发表于 2012-4-23 11:18:52 | 只看该作者
谢谢老大提醒,突然间恍然大悟
7#
发表于 2012-4-23 11:20:51 | 只看该作者
7107135 发表于 2012-4-23 11:18
谢谢老大提醒,突然间恍然大悟

下次点回复,我才能收到你回复的消息哦,亲
8#
 楼主| 发表于 2012-4-23 11:25:06 | 只看该作者
Landroid 发表于 2012-4-23 11:20
下次点回复,我才能收到你回复的消息哦,亲

哦,对。呵呵,忘了忘了,你说过一次了。
9#
 楼主| 发表于 2012-4-23 11:28:54 | 只看该作者
7107135 发表于 2012-4-23 11:25
哦,对。呵呵,忘了忘了,你说过一次了。

我要获取第三列的值应该怎么做?

  for (int i = 0; i < selectedCount; i++)
                {
                    int rowIndex = Grid1.SelectedRowIndexArray + pageIndex;
                    String XMMX = Grid1.DataKeys[rowIndex][3].ToString();     
                    //改成3这样又报错,改成0 获得是数据库行ID               
            
                    string sql = "update db_Order set loaded='true' where id='" + XMMX + "'";
                    db.ds(sql);
                }
10#
 楼主| 发表于 2012-4-23 11:31:52 | 只看该作者
Landroid 发表于 2012-4-23 11:17
嗯,要加第三列字段名,还有,datakeys是从0开始的

我要获取第三列的值应该怎么做?

  for (int i = 0; i < selectedCount; i++)
                {
                    int rowIndex = Grid1.SelectedRowIndexArray + pageIndex;
                    String XMMX = Grid1.DataKeys[rowIndex][3].ToString();     
                    //改成3这样又报错,改成0 获得是数据库行ID               
            
                    string sql = "update db_Order set loaded='true' where id='" + XMMX + "'";
                    db.ds(sql);
                }
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-5-4 15:02 , Processed in 0.050965 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表