一个DataGrid,自己建立各列,从数据库读取数据,除去首行外,共10行6列,因为需要读取更改后的某些单元格的值,使用更改EditItemIndex的方法修改数据,然后我想读取某单元格的值,使用如下语句:
string id = ( (TextBox)e.Item.Cells[1].Controls[0] ).Text
string id = e.Item.Cells[1].Controls[0].ToString();//普通单元格
报错,说参数超出范围??这是怎么回事啊?明明没有超出么....
string id = ( (TextBox)e.Item.Cells[1].Controls[0] ).Text
string id = e.Item.Cells[1].Controls[0].ToString();//普通单元格
报错,说参数超出范围??这是怎么回事啊?明明没有超出么....
解决方案 »
- 有谁做过ActiveX控件打包成Cab置于网页中自动下载安装???解决后立刻结贴,过年让我过个痛快吧?!!!!!!
- asp.net sql server 做的網站在VS2008上運行正常,在IIS上運行得不到數據庫的資料只有頁面控件顯示
- 如何用javasprit写个小程序,使得鼠标点到datagrid中的某个单元格,时候出现一个标志?
- 求助:CheckBox控件的全选或取消
- gridview 分页下面的页列表无法显示??
- 为什么Image对象为空或不是对象 ?
- 请问dropdownlist控件可以设成可编辑的吗?
- 过年了,散分200,祝大家春节快乐,顺便问个问题
- 大家讨论下从数据库中读取一条数据最高效的解决方法
- 新手来,公司里边都给大家什么任务?
- 求助!asp.net(C#)过滤特殊字符的函数
- 一个ID增长的存储过程,怎样写呢,请各位指教
string id = ( (TextBox)e.Item.Cells[1].Controls[0] ).Text
可以正常访问,改成ReadOnly后,使用
string id = ( (TextBox)e.Item.Cells[1].Controls[0] ).Text
或者string id = e.Item.Cells[1].Controls[0].ToString();
都报错,显示走出范围
百思不解啊,请大家帮帮忙啊,不弄明白我睡不着啊...
可以正常访问,
是因为你这是到编辑模式下,.Controls[0]这个表示在编辑模式下自动出现了一个textbox改成ReadOnly后,就不会产生textbox ,只能通过(TextBox)e.Item.Cells[1].text得到值
应该修改的是第二列,可能楼主是不是修改第一列,如果是就用
string id = ( (TextBox)e.Item.Cells[0].Controls[0] ).Text
If e.Item.DataSetIndex <> -1 Then
Dim t As TextBox
Dim DI As DataGridItem
DI = e.Item
t = CType(DI.Cells(0).Controls(0), TextBox)
Response.Write(t.Text.ToString) End If
BindDg()
End Sub
应该修改的是第二列,可能楼主是不是修改第一列,如果是就用
string id = ( (TextBox)e.Item.Cells[0].Controls[0] ).Text”这个我没弄错,我上面是举个例子,我现在要的是第二列的当前行数据,第二列是自动编号列,不可编辑,现在我这么写
string id = ( (TextBox)e.Item.Cells[1].Controls[0] ).Text;
显示超出范围
这么写
string id = ( (TextBox)e.Item.Cells[1] ).Text;
显示不能把TableCell转换为TextBox....
大侠们再帮帮我,谢谢了!!
读取 string id=e.item.cells[1].text就行吧,不需要转化为
textbox属性
楼主可以试试输出
Response.Write("在第二列的控件数是:"+e.Item.Cells[1].Controls.Count)
如果等于0说明没有控件,你要调试一下hope it will help you