2015-03-16 5 views
0

У меня очень трудное время, пытаясь понять, как делать то, что кажется, должно быть простым в приложении DevExpress XAF.DevExpress XAF как добавить элемент управления во всплывающее окно действия

Я понял, как добавить пользовательский элемент действия в начало подробного представления бизнес-объекта. Все, что мне нужно сделать, это отобразить всплывающее окно, содержащее элемент управления веб-интерфейса DevExpress (ASPxUploadControl, но это может быть любой элемент управления, даже простой ASPxButton). Это не обязательно должно быть несовместимым с платформой, оно должно работать только в приложении веб-интерфейса и может быть реализовано в веб-модуле и проектах веб-интерфейса.

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

Кто-нибудь еще реализовал то, что я получаю в DevExpress XAF? Может ли кто-нибудь с опытом DevExpress XAF дать мне несколько советов о том, как это сделать?

+1

Существует пример, показывающий, как показать пользовательский элемент управления. Помогает ли вам этот пример? https://www.devexpress.com/Support/Center/Example/Details/E911 – sky

+0

Ссылка E911 представляет собой любопытную комбинацию того, что они слишком детализированы в некоторых отношениях и недостаточно подробно описаны в других. Мне это очень не помогло. Спасибо за предложение. – user2075599

ответ

0

Вы должны следовать руководству here. В этом примере всплывающее окно отображает свойства объекта Note. Вам нужен объект со свойством для загрузки файла. (Убедитесь, что вы добавили вложения файлов).

Таким образом создать объект Xpo (или объект EF, если вы предпочитаете), аналогичный описанному in the documentation for File Attachments так:

[NonPersistent] 
public class Resume : BaseObject { 
    public Resume(Session session) : base(session) {} 

    private FileData file; 
    [Aggregated, ExpandObjectMembers(ExpandObjectMembers.Never)] 
    public FileData File { 
     get { return file; } 
     set { 
     SetPropertyValue("File", ref file, value); 
     } 
    } 
} 

Теперь следуют popup tutorial, но вместо Note, используйте Resume.

Обратите внимание, что Resume отмечен [NonPersistent], поэтому он не сохранит его в базе данных, но вы можете получить его содержимое в событии Execute. (Конечно, если вы предпочитаете сохранить вложение в базу данных, используйте [DefaultClassOptions], как в примере для примечания).

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

+0

Эта ссылка (CustomDocument2723) была самой близкой к тому, что мне нужно. Спасибо за предложение. Отключение происходит, когда мне нужно поставить один из сложных DevExpress ASP.Элементы UI NET Webforms UI, ASPxUploadControl, во всплывающем окне действия, а не в виде списка или подробного представления другого BO, такого как Note. – user2075599

+0

Структура XAF такова: некоторые очень сложные вещи очень легкие (например, безопасность, отчетность, богатая настраиваемая модель); некоторые обычно легкие вещи трудны (например, нестандартные элементы управления и т. д.). Вы получаете много из коробки, и обычно есть способ добиться того, что вам нужно, но это может быть не так, как вы привыкли. Модуль File Attachment уже использует ASPxUploadControl, а способ XAF - создать непостоянный BO и использовать его во всплывающем окне. Преимуществом этого подхода является то, что BO добавляется в модель, поэтому вы можете настроить макет так же, как и все остальное. – shamp00

0

Кроме того, я не использую материал FileAttachmentBase, просто обрабатывая событие FilesUploadCompleted ASPxUploadControl, чтобы выполнять ручную запись в таблицу вложений в базе данных, которая хранит только имя файла и файловую систему для загруженных файлов (и ASPxUploadControl хранит файлы в файловой системе а не в базе данных, например FileAttachmentBase). Через пару дней после этого я почти понял это. Как только я это сделаю, я собираюсь разместить видео с YouTube, чтобы каждый мог точно видеть, как это делается - с особым акцентом на том, как перекрыть любой старый пользовательский интерфейс DevExpress ASP.NET Webforms в пользовательское всплывающее окно настраиваемого действия и как обращаться с ним событиями интерфейса пользовательского интерфейса (например, для ASPxUploadControl, события FilesUploadCompleted). Технические подробности слишком подробные для публикации здесь.

+0

Следует также упомянуть, что другой причиной, по которой я должен использовать ASPxUploadControl, а не модуль XAF File Attachment, является то, что модуль прикрепления файлов XAF не имеет полностью ЧЕТЫРЕХ вещей, которые делает ASPxUploadControl: 1) индикатор выполнения, 2) несколько файлов upload, 3) расширенный режим для обработки больших файлов в кусках. 4) перетаскивание файлов. Мы MAYBE могли бы жить без # 3 и # 4, но для модуля File Attachment, по крайней мере, для № 1 и № 2 довольно не хватает. – user2075599