Master内使用FindControl找不到控件的解决方案

0、问题描述:已经在XXX.Master文件中定义了控件

<asp:LinkButton ID="lnk_new_user_after" runat="server" OnClick="lnk_new_user_Click" Visible="false">新增用户</asp:LinkButton>

但是在XXX.Master对应的代码文件XXX.master.cs的protected void Page_Load(object sender, EventArgs e)方法中使用

(LinkButton)FindControl("lnk_new_user_after")找到的却是空值

解决方案是:

1、在Web.config文件的<configuration>下的<system.web>配置节下添加配置

<trace enabled="true"/>

2、在浏览器中浏览人任意一个加载有XXX.Master的页面

之后在浏览器中输入:主机名/trace.axd(如:/http://localhost:12658/trace.axd)

这时会出现站点访问的详细信息如下:

点开其中的一次(包含加载有XXX.Master的那一次)请求,查看详细信息,结果如下:

查看控件树,,可以看到,我们需要找的控件ID全名其实是

3、在代码里我们使用这个ID即可找到控件

(LinkButton)FindControl("ctl00$ctl14$lnk_new_user_after")

4、补充,在IE内核的浏览器内查看“应用程序记录”,可以直接查看网页最底部。

找到问题后记得将Web.config里的<trace enabled="true"/>去掉。

既有美妙的风景,也会有称不上景、只有风的地方。

Master内使用FindControl找不到控件的解决方案

相关文章:

你感兴趣的文章:

标签云: