суббота, февраля 11, 2006

Очередной прикол Sharepoint'а

Теперь прикол от Sharepoint Portal.

При копировании веб-части в файл столкнулся с тем, что иногда имеет значение порядок присваивания некоторых свойств веб-части.
Например, свойство ZoneID следует назначать после добавления новой веб-части к целевой коллекции.

WebPart dst = new WebPart ();
SPWebPartCollection wpc = file.GetWebPartCollection(Storage
.Shared);
Guid
ID = wpc.Add(dst);
WebPart ds = wpc[ID];
//добавленный контрол
ds.ZoneID = ZoneID;
//присвоить значения другим свойствам
wpc.SaveChanges(ID);

Оказалось, на страницах портала есть зоны (одна из них - TitleBar), которым небезразличен порядок действий.

пятница, февраля 10, 2006

Sharepoint & Anthem.NET

Nice work Anthem.NET I used in the small Web-part, containing TextBox and LinkButton . For the conclusion of communications there is Label control.

The method of use came out sufficiently simple.
Connecting to namespace Anthem:
#if AJAX
using
Anthem;
#else
using System.Web.UI.WebControls;
#endif

Addition of specific properties in method OnInit:
#if AJAX
btn.TextDuringCallBack = "..Wait";
btn.EnabledDuringCallBack = false;
#endif

Everything earned after this, as it was expected:
- the button is blocked to the period of the fulfillment of actions, the inscription is derived on it"..Wait"
- on the return draw again only changed elements (button, label and text field), without the stupid pulling of the entire page.

Underwater stones thus far were located two:
1. During the changes in js-code and the recompilation of project Anthem-2003 is necessary cleaning AppPool the corresponding Web site.
2. Values UpdateAfterCallBack=true; in method OnInit to establish one ought not - immediately occurs copying with the original values. To establish them is possible either in the events handlers or in the beginning of method RenderWebPart.

Sharepoint & Anthem.NET

Отличную разработку Anthem.NET использовал в небольшой веб-части, содержащей TextBox и LinkButton (не считая выполняемых действий). Для вывода сообщений имется Label.

Метод использования получился довольно простой.

В файле вебчасти, использующей web-контролы, подключил пространство имён Anthem:
#if AJAX
using Anthem;
#else
using System.Web.UI.WebControls;
#endif

В методе OnInit для имеющейся на веб-части кнопки btn добавил cпецифические свойства:
#if AJAX
btn.TextDuringCallBack = "..Wait";
btn.EnabledDuringCallBack =
false;
#endif

Собственно, после этого всё заработало, как и ожидалось:
- на время выполнения действий кнопка блокируется, на ней выводится надпись "..Wait"
- по возврату перерисовываются только изменившиеся элементы (кнопка, метка и текстовое поле), без дурацкого дёргания всей страницы.

Подводных камней пока нашлось два.
1. При изменениях в js-коде и перекомпиляции проекта Anthem-2003 необходима очистка AppPool соответствующего веб-сайта.
2. Значения UpdateAfterCallBack=true; в методе OnInit устанавливать не следует - сразу происходит перерисовка исходными значениями. Устанавливать их можно или в обработчиках событий или в начале метода RenderWebPart.

четверг, февраля 09, 2006

«About» ToolPart continued

В развитие примочки перенёс в эту панель запуск функции, которая запускалась из меню веб-части и не давала покоя любопытным юзерам. Сделал там кнопочку, всё хорошо, всё выполняется. Ура!

Но Microsoft не дремлет! И тут нашлась засада...

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

ParentToolPane.OK.Visible =
ParentToolPane.Cancel.Visible =
ParentToolPane.Apply.Visible = false;

Минное поле...