Веб-часть SharePoint AJAX C # - визуальное расположение элементов управления UpdatePanel - PullRequest
1 голос
/ 21 декабря 2009

Я создаю веб-часть SharePoint в C #, которая использует UpdatePanel для некоторой магии AJAX. Все работает нормально, но я хотел бы знать, как визуально расположить мои элементы управления (без использования SharePoint Designer). У меня просто есть два выпадающих списка, несколько ярлыков, кнопка и текстовое поле. Я создаю их в переопределенных CreateChildControls. Спасибо!

Ответы [ 4 ]

2 голосов
/ 21 декабря 2009

добавьте панель контейнера вокруг ваших элементов управления и присвойте ей класс. Добавьте панель в контейнер UpdatePanel. Добавьте все остальные элементы управления в новые элементы управления Panel.

Теперь вы можете использовать css для стилизации, используя CssClass на панели контейнера.

в коде:

protected override CreateChildControls()
{
  // .. creation of updatepanel, say upd1
  Panel container = new Panel{CssClass = "webpartContainer"};
  upd1.ContentTemplateContainer.Controls.Add(container);

  container.Controls.Add(dropdown1); // etc. etc.
}

Css:

.webpartContainer
{
  /* if needed add some style here also */
}

.webpartContainer select
{
  /* add style */
}

.webpartContainer .specificClass
{
  /* give controls a class of their own in CreateChildControls 
  if controls of the same type need different styling
  (i.e. you have more than 1 select that need to look different)  */
}
1 голос
/ 21 декабря 2009

есть несколько способов выложить их. Вы можете добавить объект Table, добавить строки, ячейки и т. д. и добавить свои элементы управления в ячейки.

Кроме того, вы можете переопределить метод RenderContents и вывести HTML-код непосредственно в запись, которая передается в качестве параметра. Если вы используете этот метод (он, вероятно, менее эффективен и эффективнее, чем использование объектов Table), вы должны использовать StringBuilder для построения HTML-кода, а затем выводить результаты автору записи. Этот метод должен повысить производительность.

К сожалению, для этого метода нет визуального редактора WYSIWIG.

0 голосов
/ 22 декабря 2009

Вы можете использовать файлы ASCX в веб-частях ... просто загрузите их из класса веб-частей в CreateChildControls, например, так:

var control = Page.LoadControl("/_CONTROLTEMPLATES/yourproject/your.ascx");
Controls.Add(control);

Таким образом, вы можете использовать обычный способ Visual Studio для разметки вашей веб-части. Гораздо приятнее, чем встраивание HTML в код, а это, мягко говоря, боль.

(это также намного лучше, чем использование SmartPart, которое вызывает проблемы с уровнем доверия и развертыванием)

0 голосов
/ 21 декабря 2009

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

Вы можете использовать пользовательский элемент управления и веб-часть SmartPart из codeplex, чтобы получить преимущество визуального дизайнера для пользовательских элементов управления .ascx.

...