| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 566 人关注过本帖
标题:关于datagrid 的问题
只看楼主 加入收藏
labcp
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2005-1-20
收藏
 问题点数:0 回复次数:1 
关于datagrid 的问题

求各为高手帮忙。谢谢!
我在datagird中加了一列按钮列。

If e.CommandName = "select" Then
Dim temval1 As String
temval1 = e.Item.Cells(1).Text
Response.Write(temval1)
End If

我点击按钮时没有任何反映。
如果改成
If e.CommandName = "select" Then
else
Dim temval1 As String
temval1 = e.Item.Cells(1).Text
Response.Write(temval1)
End If

在第一页时,没有任何问题,可是一换页,就抱错:::::]


指定的参数已超出有效值的范围。
参数名: index
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.ArgumentOutOfRangeException: 指定的参数已超出有效值的范围。
参数名: index

源错误:


行 25:
行 26: Dim temval1 As String
行 27: temval1 = e.Item.Cells(1).Text
行 28: Response.Write(temval1)
行 29: End If

求各为高手帮忙。谢谢!

搜索更多相关主题的帖子: datagrid 
2007-06-04 16:30
铲铲
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:506
专家分:0
注 册:2006-5-2
收藏
得分:0 
1、必须设置按钮中的CommandName等于"select",单击这样的按钮才会在你第一个程序块中符合条件得到执行。

2、你设置了else,当然原先不符合条件的现在符合else条件了。所以有显示。

3、翻页也是一个CommandName="Page"的命令,它符合你第二块程序代码的条件。但是Command所引发的行不是数据行,而是翻页功能所在的行,翻页行没有两个单元格,那么你对Cells集合的访问当然就越界了,发生了错误。


如果DataGrid上有“修改”“更新”“插入”“取消”“上一页”“下一页”等按钮,这些按钮都有其CommandName,
一方面,单击它们会引发相应的Update_Command、Insert_Command等事件,之后还会继续引发Item_Command事件,其中CommandName依次有Edit,Update,Insert,Cancel,Page,等,上一页和下一页按钮用的是一个CommandName,只是CommandArguement不同(把它们转换成模板列就看得清楚了)。


所以你自己要引发Item_Command事件,除了挑选一个最好不要和上面的CommandName相同的命令名,还要在Item_Command事件中用你刚才的检测语句检测命令名。只要是按钮都会引发Item_Command事件,就靠IF或者switch来区分命令是什么了。

[此贴子已经被作者于2007-6-5 0:44:51编辑过]


铲铲是也
2007-06-05 00:43
快速回复:关于datagrid 的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016257 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved