目前我已经构建了一个collapseControl,它的行为与标签(associatedControlID)类似,用于控制控件的折叠状态。在ASP.NET中创建可折叠区域
下面的控制,我想建:
collapsableArea http://img692.imageshack.us/img692/3307/stackoverflowcollapseab.jpg
我认为是这样的:
把我已经建立collapsableControl和其他一些控制(如面板)在一起,以得到collapsableArea。
第一次尝试:
我试图扩大面板也做了以下内容:
this.Parent.Controls.Add(collapsableControl);
但是这给了我:“不正确的生命周期阶段”,“不能修改”,“nullReference” ...例外
,所以我给它的另一个尝试(我认为更好的选择,因为没有得到tagKey):
我伸出一个占位符,也做了以下内容:
this.Controls.Add(collapsableControl);
this.Controls.Add(collapsablePanel);
这引起了其他问题,如:我只想设置面板的文字,面板的样式,...
有线!
你有这方案的解决方案吗?
编辑:
我提出了另一种解决方案:
another solution http://img109.imageshack.us/img109/3307/stackoverflowcollapseab.jpg
“CollapsableArea” 是 “控制” 类型的,含有2个额外的专用属性:
- “CollapsableControl”
- “面板”
我认为这将足以将CollapsableArea.Controls的getter重定向到CollapsableArea.Panel.Controls。在CollapsableArea.CreateChildControls()我实例化,并添加CollapsableControl和小组base.Controls和CollapsableArea.RenderChildren()现在使那些2个
我的问题: 的CollapsableControl会得到一个clientId(不设置一个ID) - 面板不会 渲染CollapsableControl将失败(或传出),如果面板包含<%> - 标签
有什么建议吗?
编辑: 我固定缺少ID的行为 - 以Panel.ClientID ...但刚刚成立CollapsableControl.AssociatedControlID - 在面板投入<%%>的时候,它不会渲染? !
我知道有这个控制,但是:我们不希望使用既不图谱的框架也没有了它的控制。 ..斯里!再加上:我们不需要这样一个全能的舞蹈控制......我们专注于jQuery的整合! – 2009-11-11 10:17:41
您可能会以更常见的方式看到“您的解决方案是什么”的问题 - 我认为组合2个控件是一个广泛使用的场景!因为现在我不知道这个场景的(最好的)解决方案:) – 2009-11-11 10:19:27