首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FindControl找不到控件

FindControl找不到控件
EN

Stack Overflow用户
提问于 2012-08-09 22:31:50
回答 2查看 5.1K关注 0票数 0

我有一个关于FindControl函数的问题。问题如下:

aspx:

代码语言:javascript
复制
<asp:Content ID="MainContent" ContentPlaceHolderID="MainContent" runat="server">
  <ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
  </ajaxToolkit:ToolkitScriptManager>

  <table class="inputTable">
            <tr><td>
                <asp:CheckBox ID="Extern" AutoPostBack="True" OnCheckedChanged="OnCheckedChangedMethod" runat="server" />
                </td><td>Externes Unternehmen</td></tr>
    <tr>         
        <td>
            <asp:TextBox ID="Firmierung" runat="server"></asp:TextBox>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
                ControlToValidate="Firmierung" Display="Dynamic" 
                ErrorMessage="RequiredFieldValidator"
                Text="Bitte geben Sie die Firmierung ein."></asp:RequiredFieldValidator>                
        </td>
    </tr>
  </table>  

aspx.cs:

代码语言:javascript
复制
protected void OnCheckedChangedMethod(object sender, EventArgs e)
    {            
        if (Extern.Checked)
        {                
            Control ctr = FindControl("RequiredFieldValidator1");                
            if (ctr != null)
            {
                ctr.Visible = false;
            }
        }
        else
        {                
        }
    }

但是FindControl不起作用,它找不到那个控件。我在任何时候都错了吗?提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-09 22:41:46

基于您有限的资源,您应该能够简化您的代码幕后方法,以:

代码语言:javascript
复制
protected void OnCheckedChangedMethod(object sender, EventArgs e)
{            
    this.RequiredFieldValidator1.Visible = this.Extern.Checked;
}

应该不需要使用FindControl()。

当您键入"this.“时,如果您没有看到RequiredFieldValidator1出现在您的ASP.NET中,并且假设您使用的是intellisense 2.0或更高版本,请检查您的VS.NET警告,看看您的.aspx是否有一条与”生成设计器文件失败“相关联的警告消息。如果是这样,则必须更正该警告。

票数 1
EN

Stack Overflow用户

发布于 2012-08-09 22:38:20

ASP.NET会为您创建一个字段,因为它位于页面中的Contentthis.RequiredFieldValidator1内。

FindControl方法如下所示(在母版页的内容面板中找到它):

代码语言:javascript
复制
Control ctr = Master.FindControl("MainContent")
    .FindControl("RequiredFieldValidator1");
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11885735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档