2009-06-12 75 views
0

我的ASP.NET Web窗體上有一個佔位符和用戶控件動態添加到它。這些控件大多都有文本框。有時有兩個用戶控件,有時有十個。一切都按預期工作。我的問題是關於如何實現一個新功能。從一個動態創建用戶控制信息複製到另一個動態創建用戶控制

我的客戶必須從第一控制數據複製到另一個控制檢查與所討論的額外控制相關的複選框,一個新的請求。

起初,這聽起來容易...一個複選框添加到佔位每個用戶控件,然後寫一些JavaScript來將數據從第一控制的額外控制複製。然後我意識到,通過用戶控件中的文本框,我實際上無法直接修改HTML輸入。

接下來我開始考慮添加將自動回發的複選框,但我該如何去動態地添加複選框到佔位符,然後想出一種方法來添加事件處理程序到複選框並傳遞信息循環控制並複製值是必需的。這種方法似乎太複雜了,爲了實現我的目標需要太多的開銷。

有什麼建議嗎?

+0

你有JavaScript作爲一種標籤,但在你的問題沒有提到它...是用出來的這個問題? – 2009-06-12 17:45:37

回答

0

您提到,自複選框都在用戶控件,你不必對它們的訪問。

你能使用用戶控件的屬性暴露的ClientID,然後用它們在JavaScript中工作嗎?事情是這樣的:

user_control { 
    int checkboxId { get { return checkbox.ClientId; } } 
} 

如果你有更多的代碼,將是有益的......

0

這可能是爲時已晚,以幫助你,但只是讓另一個答案就在那裏...... 包括複選框作爲用戶控件的一部分可以大大簡化問題。

我有一個類似的情況,用戶控件中可能有10-15個用戶界面控件,第一個複選框與第一個複選框關聯,當選中時,意味着我應該將信息從第一個用戶控件複製到所有其他。

因爲它都是在代碼隱藏中構建的,所以我只是暴露了名爲ShowCheckBox的用戶控件的布爾屬性,該控件切換了複選框的可見性。我在第一個中設置爲true,在其他所有設置中設置爲false。因此,我知道該事件只能通過點擊第一個用戶控件的複選框來提高。然後,在複選框的事件處理程序中,我處理從第一個用戶控件到所有其他控件的複製。 (順便說一下,一定要在該複選框上設置AutoPostBack=true,否則你會問爲什麼這個事件不會觸發。)

Javascript肯定會提供更好的用戶體驗,但這對我而言並沒有要求我想出如何獲得ClientId值到javascript中。 (雖然這正是我現在需要做的,這是我偶然發現了這個問題。:-))