编辑Gridview Confusion中的项目模板TextBox值

本文关键字:TextBox 项目 Gridview Confusion 编辑 | 更新日期: 2023-09-27 18:21:29

我有一个带有Edit命令字段的网格视图。在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函数获得绑定在控件上的值。我从未在控件中获得正在编辑的值。

我哪里错了?解决方案

编辑Gridview Confusion中的项目模板TextBox值

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

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

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

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

因此,在您的数据源中,您应该得到位于位置12的项。