![](/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.