вторник, августа 19, 2008

Опять сюрприз...

Попытался использовать в форме стандартный контрол UserField. Нашлась неплохая статеечка на эту тему. Добавил код, как описано, плюс после некоторых поисков добавил ещё контекст (по умолчанию контрол работает на том же узле, что и связанный список), т.к. мне нужно работать со списками с других узлов. В общем, всё замечательно, только кнопка для выбора пользователей никакого эффекта не вызывает.smile_embaressed Кнопка проверки ввода работает, а эта - нет.smile_angry При внимательном рассмотрении выяснилось, что не находится имя нужной функции, причём по причине длины имени!? В итоге получился вот такой работающий фрагмент кода thumbs_up:

((UserField)ValElem).ListId = DataItem.ListItems.List.ID;
((UserField)ValElem).ItemId = DataItem.ID;
((UserField)ValElem).ID = "uf_" + DataItem.Fields[name].Id.ToString("N");
//DataItem.Fields[name].Id даёт слишком длинное имя!!!smile_omg
((UserField)ValElem).FieldName = this.Name;
((UserField)ValElem).ControlMode = SPControlMode.Edit;
SPContext ctx =
SPContext.GetContext(HttpContext.Current,
DataItem.ID, DataItem.ListItems.List.ID,
DataItem.ListItems.List.ParentWeb);
((UserField)ValElem).ItemContext = ctx;
((UserField)ValElem).RenderContext = ctx;
Technorati Tags: , ,
Отправить комментарий