ASP.NET使用findControl从Gridviewrow单元格获取文本

时间:2013-08-04 00:00:10

标签: asp.net

我认为简单的问题。我有一个gridviewrow,我希望能够将单元格中的文本放入页面上的文本框中。该行来自一个表,其中该列名为“Title”,其类型为nvarchar(100)。我试过这样的东西,但它给了我一个空字符串;

      tBox.Text = ((TextBox)selectedRow.FindControl("Title")).ToString();

我知道我可以使用单元格值,但我认为这有用。 有什么想法吗?

谢谢

2 个答案:

答案 0 :(得分:0)

这是正确的想法,只是有点偏离:

row.FindControl("columnName")

给你一个实际的对象。它返回的确切取决于ASP部分中指定的内容。可以是标签,可以是文本框,复选框......

获得对象后,您可以像平常一样访问属性。在这种情况下,您可能需要Text属性。

row.FindControl("...").Text

如果你更喜欢使用位置索引,那么这样的东西也有效:

row.Cells[i].Controls[1]

其中i是项目的基于0的索引,从左侧开始。

答案 1 :(得分:0)

我不知道你选择索引的方式,但无论如何首先你必须把这个文本框放到textbox变量中,然后把它里面的文本传递给你的文本框,如下所示:

TextBox tb = (TextBox)selectedRow.FindControl("Title");
if(tb != null){
   tBox.Text = tb.Text;
}

也selectRow可以来自gridview行的for循环,也可以通过编辑行或更新行或行数据来获取它,通过e.RowIndex