В настоящее время я создал collapseControl, который ведет себя аналогично метке (relatedControlID) для управления состоянием краха элемента управления.Создание сбрасываемой области в 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" имеет тип "Control", содержащий 2 дополнительные частные свойства:
- "CollapsableControl"
- "Панель"
Я думал, что этого будет достаточно, чтобы перенаправить получателя CollapsableArea.Controls в CollapsableArea.Panel.Controls. в CollapsableArea.CreateChildControls() я и создание экземпляра добавьте CollapsableControl и Группу base.Controls и CollapsableArea.RenderChildren() делает эти 2
моих проблем в настоящее время: CollapsableControl получит ClientId (без установки идентификатора) - панель не будет render CollapsableControl не удастся (или потерян), если панель содержит <%%> - теги
любые предложения?
редактировать: я установил поведение отсутствующего ID - просто набор CollapsableControl.AssociatedControlID для Panel.ClientID ... но - при вводе <%%> в панели, он не будет получать оказана ?? !!
я знаю, что есть такой контроль, но: мы не хотим использовать ни атлас-рамки, ни его контроль. .. sry! плюс: мы не нуждаемся в таком полном-все-танцевом управлении ... мы фокусируемся на интеграции jQuery! –
вы можете увидеть вопрос «какое ваше решение» более распространенным способом - я думаю, что объединение двух элементов управления является широко используемым сценарием! и с тех пор я не знаю (наилучшего) решения для этого сценария :) –