【问题标题】:Not able to find the web control on code behind?无法在后面的代码中找到 Web 控件?
【发布时间】:2014-07-24 08:11:47
【问题描述】:

我在页面上有一些控件,但我无法访问后面代码中的控件,它来自科学智能。我找到了原因。

这是我的网页控件的 HTML 代码:

   <%@ Control Language="c#" AutoEventWireup="false" Inherits="DNNInfo.Modules.Classifieds.Controls.CompanyClassifiedList" %>
   <div id="divDetailsDownloadFile" runat="server" class="DNNInfo_ClassifiedDownloads" visible="false">
      <asp:LinkButton ID="linkDownloadFile" Text="Download File" runat="server" />
    </div>

我在这里说的是链接按钮。

这是代码背后的代码:

namespace DNNInfo.Modules.Classifieds.Controls
{
   public class CompanyClassifiedList : PortalModuleBase
    { override protected void OnInit(EventArgs e)
    {
        InitializeComponent();
        base.OnInit(e);
    }

    private void InitializeComponent()
    {

        try
        {
            this.Load += new System.EventHandler(this.Page_Load);
           LinkButton linkDownload_File = (LinkButton)this.FindControl("linkDownloadFile");

            if (linkDownload_File != null)
            {
                linkDownload_File.Click += new EventHandler(this.linkDownloadFile_Click);
            }

        }
        catch (Exception ex)
        {

        }
    }
  }
}

它总是在“linkDownload_File”中返回 null。我无法识别错误。这种行为的原因是什么。

我们将不胜感激。

更新:我已经检查了让 div 可见.. 但它仍然返回 null

【问题讨论】:

  • 可能是因为您正在重新渲染 DIV 的 visible = false?
  • @LouisvanTonder 我已经检查过了,不是因为那个
  • 您从哪里调用此代码?你不应该指定你的页面吗?或者从页面后面的代码运行它?现在,this.Page 是否等于您的控件所在的实际页面?
  • 我不记得控件是否在InitializeComponent 之前初始化。例如,您可以将代码移至Page_Load 吗?
  • 但还有一些其他的控件,它们工作正常......我也对它们进行同样的处理

标签: c# asp.net click web-controls linkbutton


【解决方案1】:

您需要递归查找它,因为它在 DIV 中。另一种方法是这样使用 Page.FindControl:

http://blog.codinghorror.com/recursive-pagefindcontrol/

但也许更推荐的方式:

Better way to find control in ASP.NET

或尝试删除 DIV 上的 runat="server"

【讨论】:

    【解决方案2】:

    您是否尝试过以下操作:-

    LinkBut​​ton linkDownload_File = (LinkBut​​ton)divDetailsDownloadFile.FindControl("linkDownloadFile");

    【讨论】:

      猜你喜欢
      • 2017-01-11
      • 1970-01-01
      • 2011-09-05
      • 1970-01-01
      • 2013-12-24
      • 2014-01-12
      • 1970-01-01
      • 2010-11-21
      • 1970-01-01
      相关资源
      最近更新 更多