码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-03-11 17:31:36      阅读:256      评论:0      收藏:0      [点我收藏+]

标签:asp.net

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内核的浏览器内查看“应用程序记录”,可以在要查看的页面的<%@ Page%>内加上属性Trace="true",这样就可以在浏览该页时直接查看网页最底部即可看到跟踪信息,而不用在”对此应用程序的请求“表里面找了。

找到问题后记得将Web.config里的<trace enabled="true"/>和页面里的<%@ Page%>内属性Trace="true"去掉。


 


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

标签:asp.net

原文地址:http://blog.csdn.net/yongyu_it/article/details/44198559

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!