这下面是我写的一些代码,这只能控制repeater控件外面的,请大家帮帮忙,怎样才能控件里面的,急急急急急
public void Init(HttpApplication context)
{
context.PreRequestHandlerExecute += new EventHandler(context_PreRequestHandlerExecute);
} void context_PreRequestHandlerExecute(object sender, EventArgs e)
{
HttpApplication app = (HttpApplication)sender;
if (app.Context.Request.Url.ToString().ToLower().Contains(".aspx"))
{
if (!app.Context.Request.Url.ToString().ToLower().Contains("login.aspx"))
{
if (app.Context.Session["currentStationId"] != null)
{
//得到登录用户的岗位
int stationId = Convert.ToInt32(app.Context.Session["currentStationId"].ToString()); //得到登录岗位的权限列表
IList<Privilege> priList = PrivilegeManage.GetPrivilegeBySId(stationId); bool flag = false; foreach (Privilege item in priList)
{
string pageUrl = item.Module.PageUrl.ToLower(); if (app.Context.Request.Url.ToString().ToLower().Contains(pageUrl))
{
flag = true;
break;
}
} if (!flag)
{
app.Context.Response.Redirect("~/Login.aspx");
} }
//else
//{
// app.Context.Response.Redirect("~/Login.aspx"); //}
} } System.Web.UI.Page page = (System.Web.UI.Page)app.Context.CurrentHandler;
if (page != null)
{
page.PreRender += new EventHandler(page_PreRender);
}
} void page_PreRender(object sender, EventArgs e)
{
//获取页面
HtmlForm form = ((Page)sender).Form; //循环遍历页面中的控件
foreach (Control ctl in form.Controls)
{
//判断页面中是否有Repeater控件
//有则遍历Repeater每一行,找到按钮,禁用
if (ctl.GetType().ToString() == "System.Web.UI.WebControls.Repeater")
{
Repeater rpt = ctl as Repeater;
foreach (Control var in rpt.Items)
{
if (var.GetType().ToString() == "System.Web.UI.WebControls.ImageButton")
{
ImageButton imgbtn = (ImageButton)var;
if(imgbtn.ID.Contains("Delete"))
{
imgbtn.Enabled = false;
}
} if (var.GetType().ToString() == "System.Web.UI.WebControls.LinkButton")
{
LinkButton lkbtn = (LinkButton)var;
if (lkbtn.ID.Contains("Delete"))
{
lkbtn.Enabled = false;
}
}
} }
if (ctl.GetType().ToString() == "System.Web.UI.WebControls.LinkButton")
{ LinkButton imgbtn = (LinkButton)ctl;
if (imgbtn.ID.Contains("Delete"))
{
imgbtn.Enabled = false;
}
}
}
}
public void Init(HttpApplication context)
{
context.PreRequestHandlerExecute += new EventHandler(context_PreRequestHandlerExecute);
} void context_PreRequestHandlerExecute(object sender, EventArgs e)
{
HttpApplication app = (HttpApplication)sender;
if (app.Context.Request.Url.ToString().ToLower().Contains(".aspx"))
{
if (!app.Context.Request.Url.ToString().ToLower().Contains("login.aspx"))
{
if (app.Context.Session["currentStationId"] != null)
{
//得到登录用户的岗位
int stationId = Convert.ToInt32(app.Context.Session["currentStationId"].ToString()); //得到登录岗位的权限列表
IList<Privilege> priList = PrivilegeManage.GetPrivilegeBySId(stationId); bool flag = false; foreach (Privilege item in priList)
{
string pageUrl = item.Module.PageUrl.ToLower(); if (app.Context.Request.Url.ToString().ToLower().Contains(pageUrl))
{
flag = true;
break;
}
} if (!flag)
{
app.Context.Response.Redirect("~/Login.aspx");
} }
//else
//{
// app.Context.Response.Redirect("~/Login.aspx"); //}
} } System.Web.UI.Page page = (System.Web.UI.Page)app.Context.CurrentHandler;
if (page != null)
{
page.PreRender += new EventHandler(page_PreRender);
}
} void page_PreRender(object sender, EventArgs e)
{
//获取页面
HtmlForm form = ((Page)sender).Form; //循环遍历页面中的控件
foreach (Control ctl in form.Controls)
{
//判断页面中是否有Repeater控件
//有则遍历Repeater每一行,找到按钮,禁用
if (ctl.GetType().ToString() == "System.Web.UI.WebControls.Repeater")
{
Repeater rpt = ctl as Repeater;
foreach (Control var in rpt.Items)
{
if (var.GetType().ToString() == "System.Web.UI.WebControls.ImageButton")
{
ImageButton imgbtn = (ImageButton)var;
if(imgbtn.ID.Contains("Delete"))
{
imgbtn.Enabled = false;
}
} if (var.GetType().ToString() == "System.Web.UI.WebControls.LinkButton")
{
LinkButton lkbtn = (LinkButton)var;
if (lkbtn.ID.Contains("Delete"))
{
lkbtn.Enabled = false;
}
}
} }
if (ctl.GetType().ToString() == "System.Web.UI.WebControls.LinkButton")
{ LinkButton imgbtn = (LinkButton)ctl;
if (imgbtn.ID.Contains("Delete"))
{
imgbtn.Enabled = false;
}
}
}
}
{if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
((LinkButton)e.Item.FindControl("LinkButton1")).Visible = false;
}
}
这样不行,我要在HttpModules中控制,不是在页面中