我的asp.net页面中有一个网格。在选定的索引更改事件中,我实现了以下代码。
int ID = Convert.ToInt32(grdMnaualEntryTransactionTemplate.Rows[selectedIndex +1].Cells[1].Text);
Cell1是一个数字, 在运行时它给我一个错误“输入字符串格式不正确”。由于“文本”在运行时间变为空而发生。我在Selected index change事件中也实现了以下代码,它总是得到一个值。
int selectedIndex = grdMnaualEntryTransactionTemplate.SelectedIndex;
答案 0 :(得分:2)
您为什么使用selectedIndex + 1
?这将为您提供所选行下方的行,并在用户选择网格中的最后一行时抛出异常。
请尝试int ID = Convert.ToInt32(grdMnaualEntryTransactionTemplate.Rows[selectedIndex].Cells[1].Text);
。
答案 1 :(得分:2)
你可以这样使用..这是获取gridview中所选行数据的简单方法。 请尝试以下代码..
int ID = Convert.ToInt32(grdMnaualEntryTransactionTemplate.SelectedRow.Cells[1].Text);
答案 2 :(得分:1)
如果您想要选择的值,则可以DataKeyName
设置并调用SelectedIndexChanged
事件..
string data = grdMnaualEntryTransactionTemplate.SelectedValue.ToString();
答案 3 :(得分:1)
如果你有网格上的动作按钮,即。选择,编辑等,然后这些将在Rows.Cells[]
数组中。因此,如果每行有三个“选择”“编辑”“删除”按钮,则第一个实际数据单元将是数组索引[3]。
正如其他人指出的那样,指数+ 1也是不正确的。