我认为简单的问题。我有一个gridviewrow,我希望能够将单元格中的文本放入页面上的文本框中。该行来自一个表,其中该列称为“标题”并且类型为 nvarchar(100)。我尝试过这样的事情,但它给了我一个空字符串;
tBox.Text = ((TextBox)selectedRow.FindControl("Title")).ToString();
我知道我可以只使用单元格值,但我认为这会很有用。有任何想法吗?
谢谢
我认为简单的问题。我有一个gridviewrow,我希望能够将单元格中的文本放入页面上的文本框中。该行来自一个表,其中该列称为“标题”并且类型为 nvarchar(100)。我尝试过这样的事情,但它给了我一个空字符串;
tBox.Text = ((TextBox)selectedRow.FindControl("Title")).ToString();
我知道我可以只使用单元格值,但我认为这会很有用。有任何想法吗?
谢谢
这是正确的想法,只是有点偏离:
row.FindControl("columnName")
给你一个实际的对象。它返回的确切内容取决于 ASP 部分中指定的内容。可以是标签,可以是文本框,复选框...
拥有对象后,您可以像往常一样访问属性。在这种情况下,您可能需要该Text
属性。
row.FindControl("...").Text
如果您更愿意使用位置索引,也可以使用以下方法:
row.Cells[i].Controls[1]
i
从左侧开始,项目的基于 0 的索引在哪里。
我没有得到你选择索引的方式,但在任何情况下,首先你必须将此文本框放入文本框变量,然后将其中的文本传递给你页面的文本框,如下所示:
TextBox tb = (TextBox)selectedRow.FindControl("Title");
if(tb != null){
tBox.Text = tb.Text;
}
selectedRow 也可以来自 gridview 行上的 for 循环,或者您可以通过 e.RowIndex 从编辑行或更新绑定的行或行数据等功能中获取它