2012-07-09 49 views
2

如何获得templateField标签内的文本框值?获取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

你能告诉什么是DV1? – Adil 2012-07-09 11:40:18

+0

DV1是detailsView控件的ID ... 任何想法? – guurnita 2012-07-09 12:53:06

回答

2

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

检查,JobList.TextBox不是asp.net文本框。

这应有助于:

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

工作列表是我的proyek包... – guurnita 2012-07-09 13:16:50

+0

是的,我想了一下。当两个类具有相同的名称时,可以使用名称空间来区分。 – nunespascal 2012-07-09 13:21:51

+0

嘿,,,它的工作!谢谢@nunespascal ... 这是我的最终代码: System.Web.UI.WebControls.TextBox subjekT =(System.Web.UI.WebControls.TextBox)DV1.FindControl(“SUBJEK” )作为System.Web.UI.WebControls.TextBox; 但我不知道为什么它的工作?你能告诉我吗? – guurnita 2012-07-09 13:27:39

0

FindControl方法返回的控制的array不是一个单一的控制,所以你需要提及index

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

它仍然没有工作.. 继承人错误消息“不能应用索引与[]到一个'System.Web.UI.Control'类型的表达式'” 任何想法? – guurnita 2012-07-09 11:30:18

2

你必须去到小区寻找控制,提供行索引和列索引

int indexOfRowYouAreFinding = 0; 
int indexOfColYouAreFinding = 2; 

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

它仍然没有工作..继承人的错误消息“无法将索引与[]应用于'System.Web.UI.Control'类型的表达式... – guurnita 2012-07-09 13:08:57

+0

将无法​​正常工作,你有你自己的类叫'文本框' 。看看我的回复是否有帮助。 – nunespascal 2012-07-09 13:11:09

0

有在细节上多行查看,所以你必须给该行的索引从中选择文本框的值。 TextBox t= (TextBox)DV1.Rows[0].FindControl("SUBJEK");

此代码将返回第一行的值。

+0

did not work .. “”无法将类型'System.Web.UI.Control'转换为'JobList.TextBox'“ 我认为问题是一个铸造方法TextBox ...是这是铸造TextBox的唯一方法? – guurnita 2012-07-09 13:17:28

+0

可以请你发布你的完整的代码与详细信息视图,以便我们可以更好地了解 – 2012-07-09 13:21:47