如何在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'”
答案 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");
此代码将返回第一行值。