当前位置:编程学习 > C#/ASP.NET >>

如何遍历gridview中的控件 并得到控件id,在做权限 帮帮忙

如题 --------------------编程问答-------------------- 能够帮我遍历出本页面所有控件也行 --------------------编程问答-------------------- foreach(control ctr in page.controls)
{
  ....
} --------------------编程问答-------------------- 接下来 怎么 写 我也只会 写到你这一步 --------------------编程问答-------------------- 加把劲 啊            在线等待 --------------------编程问答-------------------- foreach (GridViewRow rowview in YourGridView.Rows)

{
Label lb1 = ((Label)rowview.FindControl("Label1"));
TextBox tb1 = ((TextBox)rowview.FindControl("TextBox1"));
………………
} --------------------编程问答-------------------- 我是想遍历 gridview的所有控件.5楼的理解错了,我根本就不知道gridiview中控件的id
遍历啊 。。 --------------------编程问答-------------------- 用树控件吧,数控家加上复选框,有的权限就是选中状态,没有的就是没选中,然后遍历树找出选中的节点内容,ok搞定 --------------------编程问答-------------------- 那是分配权限 ,我现在想做的是权限判断.
说 一个例子 我在一个页面的gridview中有一个控件假设是button吧.
我想从页面把这个button的id读取出来和数据库的权限进行比对.如果有就显示没有隐藏这个控件
问题就是如何读取这个button的id --------------------编程问答-------------------- up --------------------编程问答-------------------- 顶,我就是不会处理权限,等待牛人! --------------------编程问答-------------------- 就像我们现在所在的csdn的论坛我们是不能用删除和修改的按钮啊可以用举报,引用以及回复的按钮 --------------------编程问答-------------------- 先用foreach遍历gridvie每一行 
foreach(GridViewRow myrow in this.GridView1.Rows) 

  if(e.RowIndex = myrow.RowIndex) 
  { 
    TextBox txt = myrow.cells[2].findControl("TextBox1"); 
  } 
}
权限问题 强烈关注 --------------------编程问答-------------------- 晕,我说过不知道 gridview中控件的id号,又来一个TextBox1.. --------------------编程问答-------------------- 因为控件的层次未知,您需要用递归函数的形式来完成子控件的遍历。
--------------------编程问答-------------------- 您可以试试类似以下的代码:

//功能:遍历控件parentControl的下一级子控件,并添加到childControlsList中去
void GetChildControls(Control parentControl,List<Control> childControlsList)
{
    if(parentControl.Controls.Count>0)
    {
        foreach(Control child in parentControl.Controls) 
        { 
           childControlsList.Add(child);
           GetChildControls(child,childControlsList);    //这里再便历子控件的子子控件。。。
        }
    }
} --------------------编程问答-------------------- 我的明白 我先把遍历所有控件的代码 放在这里 
public void setControls(System.Web.UI.ControlCollection contr)
    {
        foreach (Control co in contr)
        {
            switch (co.GetType().Name.ToString())
            {
                case "Button":
                    Response.Write("<script language='javascript'>alert('" + (co as Button).ID.ToString() + "');</script>");
                    break;
                case "TextBox":
                    Response.Write("<script language='javascript'>alert('" + (co as TextBox).ID.ToString() + "');</script>");
                    break;
                case "GridView":
                   setControls((co as GridView).Controls);
                    Response.Write("<script language='javascript'>alert('" + (co as GridView).ID.ToString() + "');</script>");
                    break;
                case "LinkButton":
                    Response.Write("<script language='javascript'>alert('" + (co as LinkButton).ID.ToString() + "');</script>");
                    break;
                default:
                    setControls(co.Controls);
                    break;
            }
            //  Response.Write("<script language='javascript'>alert('"+((Control)(co.ID)).ToString()+"');</script>");

        }
    }
不过 有点 问题 
我先做了一个父类parentpage 我在parentpage的oninit事件下调用this.setControls(this.Controls)
但是总是找不到gridview下的控件
但在 普通页面下的page_load事件下 调用this.setControls(this.Controls) 却能够找到gridview下的控件 
很烦啊 --------------------编程问答-------------------- 其实这段代码也是在网上找的,不过在父类的OnInit事件下就是找不到gridview里面的控件 --------------------编程问答-------------------- 谁知道原因啊 。。到现在都没弄出来 。。
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,