【问题标题】:Disable controls in repeater from page to web user control禁用转发器中的控件从页面到 Web 用户控件
【发布时间】:2011-10-20 19:01:11
【问题描述】:

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

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

我可以像这样将用户控件的其他控件的可见性设置为 false...

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

...但我无法将 ItemTemplateRepeater 中的 2 个图像按钮的可见性设置为 false。

我该怎么做?

【问题讨论】:

    标签: asp.net repeater asp.net-4.0 webusercontrol


    【解决方案1】:

    当您处理中继器内的控件时,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();
    }
    

    【讨论】:

    • 感谢您的回答,我正在尝试这样做,但是当我从页面加载访问该功能时,它显示中继器没有项目。但它确实有 2 行
    • 在您尝试遍历其项目时,您的中继器是否已被数据绑定?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-29
    • 1970-01-01
    • 2011-06-25
    相关资源
    最近更新 更多