2010-05-18 62 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但是你破壞了封裝的概念...