如何遍历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#