c#——DataList中后台设置控件可见性的问题!

来源:百度知道 编辑:UC知道 时间:2024/05/20 17:19:11
我要根据会员权限设置DataList中的一个LinkButton的可见性的问题!我怎么设置那个LinkButton的可见性啊?下面是我尝试过的一段代码!
LinkButton LinkButton2 = (LinkButton)DataList1.FindControl("LinkButton1");
LinkButton2.Visible = false;
可是不行啊!浏览的时候给出的提示是——“未将对象引用设置到对象的实例。”将这个代码放在Page_Load、DataBinding、DataList1_Load、等等我都试过了!请大家帮忙!谢谢!
我在DataBound中加入了如下语句!
LinkButton LinkButton2 = (LinkButton)DataList1.SelectedItem.FindControl("LinkButton1");
LinkButton2.Visible = false;
可是那个LinkButton依旧显示着呢!
请大家帮忙!

放在ItemDataBound事件里
control linkbutton= e.Item.FindControl("")
linkbutton.visible=false
就可以了

未将对象引用设置到对象的实例,肯定是你没有找到这个控件,LinkButton2的值是NUll.

LinkButton Link = (LinkButton )this.DataList1.SelectedItem.FindControl("LinkButton1");

Link.Visible=false;

你的linkbutton1肯定没有找到,是空的。在DataBound事件中写:
LinkButton LinkButton2 = (LinkButton)DataList1.SelectedItem.FindControl("LinkButton1");

“LinkButton LinkButton2 = (LinkButton)DataList1.FindControl("LinkButton1");”
LinkButton2.Visible = false;
未将对象引用设置到对象的实例的意思是你所要找的LinkButton2不存在,所以你使用一个不存在的控件的Visible属性就会报错
找LinkButton的方法不是你那样的,要先遍历DataList,在DataList的子控件中寻找该控件,有2种方法:
1.
foreach (DataListItem item in DataList1.Items)
{
if(((LinkButton)item.FindControl("LinkButton1"))!=null)
{
((LinkButton)item.FindControl("LinkButton1")).visible=false;
}
}
2. for