获取templateField标记内的文本框值?

时间:2012-07-09 11:26:19

标签: c# asp.net

如何在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 个答案:

答案 0 :(得分:2)

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

int indexOfRowYouAreFinding = 0;
int indexOfColYouAreFinding = 2;

TextBox subjek = DV1.Rows[indexOfRowYouAreFinding].Cells[indexOfColYouAreFinding].FindControl("SUBJEK")[0] as TextBox;

答案 1 :(得分:2)

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

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

这应该有所帮助:

var subjek = (TextBox)DV1.FindControl("SUBJEK") as System.Web.UI.WebControls.Textbox;

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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

此代码将返回第一行值。