protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);          //  Control c = Page.FindControl("hlAdd");
         //   c.Visible = false;            hlAdd.Visible = false;        }这里我为什么直接用       hlAdd.Visible = false;
就可以
但用FindControl就出错呢
c为null
这里我需要通过id来找控件
应该怎么做

解决方案 »

  1.   

    Page.Controls[0].ID,其中Controls是页面上所有服务器端控件的集合,根据index来访问某一个控件,你也可以循环访问所有控件的。
      

  2.   

    发个链接你再看看,估计你能用上
    http://www.jb51.net/article/16536.htm
      

  3.   

    应该可以找到啊,你的hlAdd是什么控件?放在什么位置了?
      

  4.   

    我是要通过id找到控件
    为什么Page.FindControl("hlAdd");不行
      

  5.   

    ID写错了?还是说放母版页里面了,ID变了?你看下源文件,看看ID是啥?
      

  6.   

    可能是OnInit()发生在控制产生对象实例化之前吧
      

  7.   

    但如果用
    hlAdd.Visible = false;
    是可以的哦
    不明白怎么
    Page.FindControl("hlAdd").Visible = false;
    就不行
      

  8.   

    我放到Page_Load也一样出错异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误: 
    行 20:             {
    行 21:                // hlAdd.Visible = false;
    行 22:                Page.FindControl("hlAdd").Visible = false;
    行 23: 
    行 24: 
     
      

  9.   

    aspx页面--前台<html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        <asp:Literal ID="lit" runat="server"></asp:Literal>
        </div>
        </form>
    </body>
    </html>
    aspx页面-后台public partial class IBase:BasePage
        {
            protected void Page_Load(object sender, EventArgs e)
            {
              
            }
        }
    定义的基类 public class BasePage:System.Web.UI.Page
        {
            protected override void OnInit(EventArgs e)
            {
                base.OnInit(e);
                Literal lits = (Literal)this.FindControl("lit");
                lits.Text = "哈咐";
            }
            public void a()
            {
              Response.Write("s");
            }
        }
    最后输出结果lit的值为哈咐
      

  10.   

    是在什么地方啊 ,如果放到页面嵌套在了母版里,先要定义一个 ContentPlaceHolder,用Master.FindControl去找,然后再在这个ContentPlaceHolder里FindControl所要找的控件