![](/img/trans.png)
[英]With the Ajax Control Toolkit, how would I go about programmatically creating an accordion control that is resizeable and drag/droppable at runtime?
[英]How should I go about creating a user control with variable layout?
我有一個包含許多子控件的用戶控件。 我希望能夠通過用戶控件的屬性來更改控件的布局(即更改子控件周圍的標記),但是我不想重復自己的子控件。 例如,這排除了在每個視圖中使用具有不同版本布局的MultiView,因為在這種情況下,我必須復制控件。 我也寧願使用標記,也不願直接為控件發出代碼(就像在服務器控件中那樣)。
舉一個人為的例子,說我有一個標簽和一個文本框。 在一種布局中,我希望div包含標簽和文本框,並使其相互重疊。 在另一個布局中,我希望它們並排包含在表中。
我是否應該繼續並在每個視圖之間復制控件? 似乎違反了DRY原則,但是我不確定是否有很多選擇。 一種局部解決方案是將多視圖的視圖放入命名容器中,這樣我至少可以節省自己必須為重復的控件ID加上前綴以使它們唯一的時間。
謝謝! 請隨時詢問以上內容是否沒有道理。
聽起來確實像您應該繼續創建服務器控件,而不只是用戶控件。 您必須在代碼中創建標記,但這將為您提供最大的靈活性。
一個想法是創建第二個用戶控件,該用戶控件與設計文件上的第一個用戶控件克隆,但具有相同的代碼文件。
FileLayout1.ascx
FileLayout2.ascx
both of this have
CodeFile="FileLayout1.ascs.cs" Inherits="FileLayout1"
FileLayout1.ascs.cs
您可以加載1或2。
局限性/問題在於兩個ascx必須具有完全相同的控件名稱,並且您具有相同的控件2次(但是代碼僅是一次)
從我的角度來看,好主意是您可以自由選擇兩種布局。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.