выкладывание формы с использованием c # для веб-части в sharepoint - PullRequest
4 голосов
/ 03 марта 2009

Я создал веб-часть на c # для sharepoint. в основном это форма с текстовыми полями, литералами, валидаторами и кнопками.

Я не уверен, как визуализировать эту форму, чтобы она выглядела красиво. Макет и т. Д. Полностью выполняется в этом классе C #.

На данный момент, чтобы начать, я просто перебираю CreateChildControls() метод и добавляем каждый элемент управления формы, используя что-то вроде: this.Controls.Add(submitButton);

какие-либо идеи о том, как лучше всего разметить эту форму?

Спасибо.

Ответы [ 5 ]

3 голосов
/ 06 марта 2009

При создании пользовательских веб-частей я также предпочитаю реализовывать их, переопределяя методы CreateChildControls () и Render () . В методе Render () я полностью контролирую вывод html и могу отображать свои внутренние элементы управления, вызывая this.someInnerControl.RenderControl (writer) .

Наличие полного контроля над выводом html также упрощает стилизацию html с использованием CSS. Как предлагают другие, используйте внешний файл CSS и примените стили к атрибуту class в элементах html или свойству CssClass в веб-элементе управления ASP.NET.

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

При использовании определенных в CSS стилей CSS вы должны знать о выводе html. Некоторые из классов CSS требуют определенной структуры HTML для правильной визуализации. Вы всегда можете использовать браузер «Просмотр исходного кода» для проверки HTML-кода элемента SharePoint, который вы пытаетесь имитировать.

1 голос
/ 03 марта 2009

Я бы порекомендовал извлечь источник с существующей страницы sharepoint и использовать стили, определенные sharepoint. Эта ссылка на стили 2003 года устарела, но все же является хорошим руководством для начала работы. Большинство имен классов CSS не изменились.

0 голосов
/ 03 марта 2009

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

Если вы предпочитаете код вручную, значит, вы на правильном пути. Просто создайте и установите начальные свойства для ваших элементов управления в методе CreateChildControls () и используйте this.Controls.Add () , как вы уже были.

В обоих случаях, где это возможно, используйте свойство CssClass, чтобы вы могли переделать внешний вид в файле CSS без необходимости перекомпиляции. Вы могли бы жестко кодировать имена классов CSS, но для их хранения было бы лучше использовать свойства веб-части или внешний источник конфигурации. Получите ссылку на файл CSS на главной странице или вставьте его на страницу, используя другие методы, упомянутые в этом ответе.

Статьи MSDN Веб-части в Windows SharePoint Services или Создание базовой веб-части также может помочь.

0 голосов
/ 03 марта 2009

Вы можете переопределить метод RenderContents (...), чтобы вручную визуализировать HTML-код любым удобным для вас способом. Это включает добавление любых включений CSS, включений сценариев и т. Д., Которые вы хотите / используете.

Вы можете преобразовать ваши дочерние элементы управления в строки, а затем вывести их, но, вероятно, вам НЕ следует вызывать метод base.RenderContents (...).

Просто убедитесь, что вы не забыли визуализировать свои дочерние элементы управления.

0 голосов
/ 03 марта 2009

В свои веб-части я включаю файлы css в решение и вставляю их на страницу, используя что-то вроде:

this.Page.Header.RegisterCss("/_layouts/path/to/css/file.css", false);
...