Panel p=new Panel();
Table t=new Table();
TableRow tr=new TableRow();TableCell tc1=new TableCell();
Lable lbl=new Lable();
lbl.Text="aa";
tc1.Controls.Add(lbl);TableCell tc2=new TableCell();
ImageButton btn1=new ImageButton();
ImageButton btn2=new ImageButton();
ImageButton btn3=new ImageButton();
tc2.Controls.Add(btn1);
tc2.Controls.Add(btn2);
tc2.Controls.Add(btn3);tr.Cells.Add(tc1);
tr.Cells.Add(tc2);
t.Rows.Add(tr);GridView gv=new GridView();p.Controls.Add(t);
p.Controls.Add(gv);我想根据btn2的parent属性来获得gv,谁能告诉我btn2的parent控件是谁,为什么我一级一级向上找招不到gv呢?

解决方案 »

  1.   

    btn2的parent是tc2。t跟gv是并列的:
    btn2的父控件的父控件的父控件=t
    t的父控件的第二个控件=gv
      

  2.   

    btn2的parent控件是谁?你Response.Write(btn2.Parent)不就可以看出来了吗?
      

  3.   

    GridView gv=new GridView();
    控件都没ID 怎么去FindControl呢?
      

  4.   


            Panel p1 = btn2.Parent.Parent.Parent.Parent as Panel;
            if (p1 != null && p1.Controls.Count > 1)
            {
                GridView grid = p1.Controls[1] as GridView;
            }
    这样访问,另外,你上面写的"Lable lbl=new Lable();"写错了,应该是"Label lbl=new Label();"
      

  5.   

     public void getdate(object sender)
    {
       ImageButton btn=(ImageButton)sender;
       for(int i=0;i<btn.Parent.Controls.count;i++)
        {
           if (btn.Parent.Controls[i] is TableCell)
             {
                TableCell tc1 = btnDetailOrUpdate.Parent.Controls[i] as TableCell;
                for (int j = 0; j < tc1.Parent.Controls.Count; j++)
                 {
                   if (tc1.Parent.Controls[i] is TableRow)
                    {
                      TableRow tr1 = tc1.Parent.Controls[i] as TableRow;
                      for (int k = 0; k < tr1.Parent.Controls.Count; k++)
                      {
                          if (tr1.Controls[i] is Table)
                          {
                             Table tab1 = tr1.Controls[i] as Table;
                             for (int o = 0; o < tab1.Controls.Count; o++)
                               {
                                 if (btnDetailOrUpdate.Parent.Controls[i] is GridView)
                                  {
                                     GridView gv = btnDetailOrUpdate.Parent.Controls[i] as GridView;
                                  }
                               }
                            }
                        }
                    }
                }
    }这样写有问题吗?为什么直接跳过去不执行呢
      

  6.   

    这个里边只有一个gridview,判断控件是不是gridview就可以找到gridview了
      

  7.   

    采用了Lisliefor的办法可以了,谢了