用FindControl方法获取用户控件怎么一直出现未将对象引用设置到对象的实例呢 本帖最后由 hyt48079287 于 2010-06-19 06:04:59 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 (LinkButton)FindControl("btnDelete");这样就行! 写在Repeater1_ItemDataBound方法里面就可以了 要在repeater的ItemDataBound事件里进行查找 protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) { // LinkButton bb = (LinkButton)e.Item.FindControl("btnDelete"); } 5楼正解不在ItemDataBind事件中查找谁知道在哪啊数据多的时候一个repeater中不是有很多名为linkbutteon了?id也不是一样的,只有在特定的行里才能找到 protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) { for (int i = 0; i <Repeater1.Items.Count; i++) { LinkButton bb = (LinkButton)Repeater1.Items[i].FindControl("btnDelete"); // LinkButton bb = (LinkButton)e.Item.FindControl("btnDelete"); //下面一句报错,出现未将对象引用设置到对象的实例 bb.Visible = true; } }这样可以显示那个【删除】按钮,但是另外有问题。例如这个帖子回复一共有3个,但是最后一个的回复那里没有显示【删除】。打断点看了一下,Repeater1.Items.Count 的数量是1 不是2 为什么会少了一个数的? 既然使用了Repeater1_ItemDataBound这个事件,干么还要再加一个for啊?ItemDataBound这个事件就是在绑定数据的行时就发生的,protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) { // LinkButton bb = (LinkButton)e.Item.FindControl("btnDelete"); bb.Visible = true; }给你的这个不就可以了吗 你不就是设置Visible嘛,不要到处去追逐在什么地方去写代码:Visible='<%# Page.User.IsInRole("管理员") %>'不用在满篇代码中来回跑腿。 实际上这个可以优化一下:private bool? _super;protected bool 判断管理员(){ if(!_super.HasValue ) _super.Value= Page.User.IsInRole("管理员") return _super.Value;}Visible='<%# 判断管理员() %>'不过重点是:不要写很多代码。 嗯, _super.Value= Page.User.IsInRole("管理员")可能应该写为 _super= Page.User.IsInRole("管理员")才对!少写代码,你的设计可以容易一些,更好维护和扩展一些。代码写的越少,能力越强。 bb.Visible = true;未将对象引用设置到对象的实例。 Repeater1_ItemDataBound方法里不用循环,直接查找就行了LinkButton bb = (LinkButton)e.Item.FindControl("btnDelete");bb.Visible = true; bb.Visible = true;//未将对象引用设置到对象的实例。 protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) { // LinkButton bb = (LinkButton)e.Item.FindControl("btnDelete"); } bb.Visible = true;报错:未将对象引用设置到对象的实例。 你可以试试在Repeater1_ItemDataBound事件里面用LinkButton lbtnDel = e.FindControl("btnDelete") as LinkButtonlbtnDel.Visbile = true; System.Web.UI.WebControls.LinkButton btnDelete= e.Item.FindControl("btnDelete") as System.Web.UI.WebControls.LinkButton ;后台加上这句就OK了! 很急的问题 gridview的 如何用打印网页页面 Microsoft JScript 运行时错误:Treeview_1未定义 求简单的加密 给datagrid加了总计行后出现的怪问题? 新手提一个试探性的问题?关于断送登陆的! 急急急!请问制作网页需要客户提供些什么资料?常用的 关于后台的问题 链本地SQL2000链不上了!(解决马上给分!) 怎样接收一个QueryString字段的值? 用Repeater控件做论坛的问题,如何在每一楼里加上一个删除帖子的按钮(管理员)? RegularExpressionValidator的错误提示信息,怎么没办法自动消失?
这样就行!
{
//
LinkButton bb = (LinkButton)e.Item.FindControl("btnDelete");
}
不在ItemDataBind事件中查找谁知道在哪啊
数据多的时候一个repeater中不是有很多名为linkbutteon了?
id也不是一样的,只有在特定的行里才能找到
{
for (int i = 0; i <Repeater1.Items.Count; i++)
{
LinkButton bb = (LinkButton)Repeater1.Items[i].FindControl("btnDelete");
// LinkButton bb = (LinkButton)e.Item.FindControl("btnDelete"); //下面一句报错,出现未将对象引用设置到对象的实例 bb.Visible = true;
}
}这样可以显示那个【删除】按钮,但是另外有问题。
例如这个帖子回复一共有3个,但是最后一个的回复那里没有显示【删除】。
打断点看了一下,Repeater1.Items.Count 的数量是1 不是2
为什么会少了一个数的?
{
//
LinkButton bb = (LinkButton)e.Item.FindControl("btnDelete");
bb.Visible = true; }给你的这个不就可以了吗
private bool? _super;protected bool 判断管理员()
{
if(!_super.HasValue )
_super.Value= Page.User.IsInRole("管理员")
return _super.Value;
}
Visible='<%# 判断管理员() %>'不过重点是:不要写很多代码。
可能应该写为 _super= Page.User.IsInRole("管理员")
才对!少写代码,你的设计可以容易一些,更好维护和扩展一些。代码写的越少,能力越强。
bb.Visible = true;未将对象引用设置到对象的实例。
LinkButton bb = (LinkButton)e.Item.FindControl("btnDelete");
bb.Visible = true;
bb.Visible = true;//未将对象引用设置到对象的实例。
{
//
LinkButton bb = (LinkButton)e.Item.FindControl("btnDelete");
}
报错:未将对象引用设置到对象的实例。
LinkButton lbtnDel = e.FindControl("btnDelete") as LinkButton
lbtnDel.Visbile = true;
System.Web.UI.WebControls.LinkButton btnDelete= e.Item.FindControl("btnDelete") as System.Web.UI.WebControls.LinkButton ;后台加上这句就OK了!