网格视图选定的行单元格值变为空

时间:2014-01-31 11:32:59

标签: c# asp.net gridview

我的asp.net页面中有一个网格。在选定的索引更改事件中,我实现了以下代码。

 int ID = Convert.ToInt32(grdMnaualEntryTransactionTemplate.Rows[selectedIndex +1].Cells[1].Text); 

Cell1是一个数字,  在运行时它给我一个错误“输入字符串格式不正确”。由于“文本”在运行时间变为空而发生。我在Selected index change事件中也实现了以下代码,它总是得到一个值。

 int selectedIndex = grdMnaualEntryTransactionTemplate.SelectedIndex;

4 个答案:

答案 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也是不正确的。