我在页面上有一些控件,我无法访问代码背后的控件,它来自科学情报。我找到了原因。
这是我的网页控制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
答案 0 :(得分:1)
你需要递归地查找它,因为它在DIV中。另一种方法是以这种方式使用Page.FindControl:
http://blog.codinghorror.com/recursive-pagefindcontrol/
但也许更推荐的方式:
Better way to find control in ASP.NET
或尝试删除runat =&#34; server&#34;在DIV上
答案 1 :(得分:0)
LinkButton linkDownload_File =(LinkButton)divDetailsDownloadFile.FindControl(&#34; linkDownloadFile&#34;);