formview有多个Panel 。我的文本框位于第一个面板中。如果我用这个
TextBox myTxtBox = (TextBox)myformView.Row.FindControl("pnlID").FindControl("mytextbox"); <- does not work
Panel mypanel = (Panel)myformView.Row.FindControl("pnlID"); <- this works
TextBox myTxtBox = (TextBox) FindControlRecursive(mypanel,'mytextbox'); <-- this does not work
有人可以帮忙吗?作为附带问题,我使用了一个函数FindControlIterative,但我不知道哪个引用包含在LinkedList中
答案 0 :(得分:0)
以下适用于我:
<强>标记强>
<asp:FormView ID="formView1" runat="server">
<ItemTemplate>
<asp:Panel ID="pnlID" runat="server">
<asp:TextBox ID="mytextbox" runat="server"></asp:TextBox>
</asp:Panel>
</ItemTemplate>
</asp:FormView>
代码
TextBox myTxtBox = (TextBox)FindControlRecursive(formView1,"mytextbox");
答案 1 :(得分:0)
我的回答:@jdavies解决方案是对的。我将错误的控件传递给函数。我意识到我的formView1实际上在另一个面板中,因此后面的代码不能直接看到formview。