Как вернуть автопост на элемент управления при рендеринге - PullRequest
2 голосов
/ 05 января 2011

Я должен добавить раскрывающийся элемент управления в веб-части.Я отрисовываю часть, используя строки HTML следующим образом ...

StringBuilder sb = new StringBuilder ();

sb.Append (div id = "content); В строке есть кавычки

sb.Append (div class = "" hb ""> "); *sb.Append (div class = "" someclass ""> "); * sb.Append (h2 id =" "contentpage_title" "> Title"); ** sb.Append (divclass = "" ctn_conferences ""> "); **

writer.Write (sb.ToString ()); *

Iнеобходимо добавить загруженный элемент управления раскрывающимся списком ... поэтому я объявил ..

защищенный DropDownList ddMyDropDown = new DropDownList ();

затем добавилэлемент управления в середине рендера, где я хотел, следующим образом ...

ddMyDropDown.RenderControl (writer);

Все хорошо .... кроме... сообщение не работает. Мои обработчики событий не выполняются.

Когда я добавляю элемент управления ... как Controls.Add (Control) , то добавляется внизу части.Это не то, что я хочу.

Так как мне вернуть почту к работе?

Заранее спасибо.

-Satyen

1 Ответ

1 голос
/ 05 января 2011

У вас есть правильная идея для переопределения метода рендеринга, но добавьте следующее:

protected DropDownList ddMyDropDown;

protected override void CreateChildControls()
{
    base.CreateChildControls();
    ddMyDropDown = new DropDownList();
    ddMyDropDown.AutoPostBack = true;
    Controls.Add(ddMyDropDown);
}

Кроме того, в вызове переопределения метода рендеринга вызовите EnsureChildControls (), прежде чем пытаться отобразить любую настройку элемента управления черезМетод CreateChildControls ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...