【发布时间】:2010-05-18 05:32:59
【问题描述】:
在 aspx 页面中,我使用了一个包含按钮的用户控件。当单击复选框(在 aspx 中)时,我需要隐藏按钮(在用户控件中)。我有一个复选框的回发。我想在选中复选框时隐藏按钮。在哪种情况下我应该进行隐藏和取消隐藏?
我无法在用户控件中添加额外的属性。是否可以使用 FindControl 访问按钮并禁用它?可以使用哪个事件?
请帮忙
谢谢
李乔
【问题讨论】:
标签: asp.net
在 aspx 页面中,我使用了一个包含按钮的用户控件。当单击复选框(在 aspx 中)时,我需要隐藏按钮(在用户控件中)。我有一个复选框的回发。我想在选中复选框时隐藏按钮。在哪种情况下我应该进行隐藏和取消隐藏?
我无法在用户控件中添加额外的属性。是否可以使用 FindControl 访问按钮并禁用它?可以使用哪个事件?
请帮忙
谢谢
李乔
【问题讨论】:
标签: asp.net
您将在复选框单击事件中进行隐藏.....
你的问题是如何让你的aspx页面与你交流ascx?
在您的 ascx 中公开一个公共方法并从您的 aspx onSelectChanged 为您的 Checkbox 调用它
【讨论】:
protected void myCheckBox_CheckedChanged(object sender, EventArgs e)
{
ucMyControl.ButtonVisible = ((CheckBox)sender).Checked;
}
并在您的用户控件中定义:
public bool ButtonVisible
{
set { myButton.Visible = value; }
}
【讨论】:
您是否可以修改用户控件?最好的解决方案肯定是在用户控件上暴露一个公共属性或方法,然后让页面上的复选框点击事件通过自定义属性或方法与用户控件进行通信。
FindControl 可能有效,但是如果页面知道用户控件内的按钮 ID 并且不应该这样做恕我直言,那么您将打破封装的概念...
【讨论】: