2

如何获取templateField标签内的文本框值?

这是我的代码:

 <Fields>
   <asp:TemplateField >
     <ItemTemplate >
     <asp:TextBox ID="SUBJEK" runat="server" Width="600px" Text='<%# Bind("SUBJEK") %>' />
     </ItemTemplate>
    </asp:TemplateField>
  </Fields>

我试图通过以下方式获得价值:

TextBox subjek = (TextBox)DV1.FindControl("SUBJEK") as TextBox;

但是,它没有用。这是错误消息:

“无法将类型 'System.Web.UI.Control' 转换为 'JobList.TextBox'”

4

4 回答 4

2

您已转到单元格以查找控件,提供行索引和列索引

int indexOfRowYouAreFinding = 0;
int indexOfColYouAreFinding = 2;

TextBox subjek = DV1.Rows[indexOfRowYouAreFinding].Cells[indexOfColYouAreFinding].FindControl("SUBJEK")[0] as TextBox;
于 2012-07-09T12:58:31.773 回答
2

您的命名空间中有另一个名为TextBox.

检查一下,JobList.TextBox是不是asp.net TextBox。

这应该有助于:

var subjek = (TextBox)DV1.FindControl("SUBJEK") as System.Web.UI.WebControls.Textbox;
于 2012-07-09T13:10:16.177 回答
0

FindControl方法返回一个array控件而不是单个控件,因此您需要提及index.

TextBox subjek = DV1.FindControl("SUBJEK")[0] as TextBox;
于 2012-07-09T11:28:12.860 回答
0

详细信息视图中有多行,因此您必须提供从中选择文本框值的行的索引。 TextBox t= ( TextBox )DV1.Rows[0].FindControl("SUBJEK");

此代码将返回第一行值。

于 2012-07-09T13:05:24.710 回答