2010-05-18 61 views
0

在aspx页面中,我使用的是包含按钮的用户控件。当复选框(在aspx中)被锁定时,我需要隐藏该按钮(在用户控制中)。我有一个复选框复选框。我想在复选框被选中时隐藏按钮。在哪种情况下,我应该做隐藏和取消隐藏?用户控件的ASP.NET事件

我无法在用户控件中添加额外的属性。是否可以使用FindControl访问按钮并禁用它?哪个事件可以用于它?

请帮

感谢

Lijo

回答

0

你会做的复选框,单击事件隐藏.....

是你的问题是如何让你的aspx页面说话给你ascx?

暴露在你的ASCX一个公共方法,并从你的aspx调用它onSelectChanged您的复选框

0
protected void myCheckBox_CheckedChanged(object sender, EventArgs e) 
    { 
     ucMyControl.ButtonVisible = ((CheckBox)sender).Checked; 
    } 

,并在用户控件定义:

public bool ButtonVisible 
    { 
     set { myButton.Visible = value; } 
    } 
+0

它不应该是问题,如果它有可见的财产 – UserControl 2010-05-18 07:13:13

+0

我不能在用户控件中添加额外的属性。是否可以使用FindControl访问按钮并禁用它?哪个事件可以用于它? – Lijo 2010-05-18 07:17:16

+0

好吧,如果你至少有一个对用户控件的引用并知道按钮的ID,那么这是可能的。您需要通过ucMyControl.Controls集合递归执行FindControl()。检查这篇文章的算法:http://stevesmithblog.com/blog/recursive-findcontrol/ – UserControl 2010-05-18 07:28:03

0

您可以修改用户控件在所有?最好的解决方案是在用户控件上公开属性或方法,然后让页面上的复选框单击事件通过自定义属性或方法与用户控件进行通信。

的FindControl可能工作,如果页面知道该按钮是用户控制范围之内,不应该这样做,恕我直言的ID但是你破坏了封装的概念...