0

我有一个带有编辑命令字段的网格视图。在 gridview 的模板字段之一中,我在编辑项模板中有一个文本框。在 RowUpdating 事件中,我尝试获取文本框的值。

TextBox text = (TextBox)GridView1.Rows[e.RowIndex].FindControl("txtfname");

GridViewRow row =GridView1.Rows[e.RowIndex] as  GridViewRow;

TextBox tFirstName = row.FindControl("txtfname") as TextBox;

TextBox textFName = (TextBox)row.Cells[0].Controls[3];

我尝试了所有三种方法。当我把

if(!IsPostBack)Bind_grid();

我将 textbox.text 值设为空。如果删除该条件,我将获得使用标记页面中的 Bind 函数绑定在控件上的值。我从未得到我在控件中编辑的值。

我哪里错了?解决方案?

4

1 回答 1

0

我猜你的网格启用了分页。因此,您正在获取网格中显示的行的索引(而不是数据源)。

例如:您在网格的第 2 页中,每页有 10 个项目。您单击第三行的编辑。e.RowIndex 将为 2。

如果你想将它映射到你的数据源,这应该是... ((page - 1) * items) + index;

((2-1) * 10) + 2 = 12

因此,在您的数据源中,您应该获得位于第 12 位的项目。

于 2013-07-08T20:22:14.947 回答