禁用转发器中从页面到 Web 用户控件的控件

发布于 2024-12-10 19:05:06 字数 321 浏览 3 评论 0原文

我有一个用户控件,其中有 Repeater 控件,其中有两个图像按钮。

我希望能够将图像按钮的可见性设置为 false。

我可以将用户控件的其他控件的可见性设置为 false,如下所示...

this.Comment1.FindControl("btnAddNote").Visible = false;

...但无法将 ItemTemplate 内的 2 个图像按钮的可见性设置为 false中继器

我怎样才能做到这一点?

I have a user control in which I have Repeater control and inside this there are two image button.

I want to be able to set the visibility to false for the image buttons.

I am able to set visibility to false for the other controls of the user control like this...

this.Comment1.FindControl("btnAddNote").Visible = false;

...but am unable to set the visibility false for the 2 image button inside ItemTemplate of Repeater.

How can I do that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

沫尐诺 2024-12-17 19:05:06

当您处理中继器内的控件时,FindControl 方法无法访问项目模板中的控件。为此,您必须循环遍历转发器的每个项目并在 RepeaterItem 上使用 FindControl。

由于您的中继器位于用户控件内部,因此我建议在您的用户控件上创建一个像这样的方法,并从页面调用该方法。

//user control
public void HideNotes(){
   foreach (RepeaterItem ri in Repeater1.Items)
      ri.FindControl("btnAddNote").Visible = false;
}

//page
void btn_hide_Click(object sender, EventArgs e){
   this.Comment1.HideNotes();
}

When you're dealing with controls inside of a repeater the FindControl method is not able to access controls in the item template. To do this you have to loop through each of the repeater's items and use FindControl on the RepeaterItem.

Since your repeater is inside the user control I'd suggest making a method on your usercontrol like this, and calling that from the page.

//user control
public void HideNotes(){
   foreach (RepeaterItem ri in Repeater1.Items)
      ri.FindControl("btnAddNote").Visible = false;
}

//page
void btn_hide_Click(object sender, EventArgs e){
   this.Comment1.HideNotes();
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文