...

DropDownList DefaultValue

Тема в разделе "Разработчикам", создана пользователем zazimko, 21 апр 2017.

  1. zazimko

    zazimko New Member

    Никак не получается задать значение по умолчанию.
    Заполняю список из справочника.
    private bool ImplementService(Context context,EleWise.ELMA.Model.Views.FormViewBuilder<Context> form)
    {
    try{
    //Получаем данные из локального справочника Услуги.
    ICollection<Uslugi> servise = PublicAPI.Objects.UserObjects.UserUslugi.Find(string.Empty);
    //Получаем настройки выпадающего списка для контекстной переменной
    var _servise = context.GetSettingsFor(c => c.VyberiteUslugu).As<DropDownListSettings>();;
    _servise.Items.Clear();

    foreach (var uslugi in servise)
    {
    _servise.Items.Add(new DropDownItem()
    {
    Value = uslugi.Name,
    Key = uslugi.Identifikator.Naimenovanie,

    });
    }
    _servise.DefaultValue = new DropDownItem
    {
    Value = _servise.Items[0].Value,
    Key= _servise.Items[0].Key
    };
    _servise.SelectOnly = true;
    _servise.Save();
    return true;
    }
    catch(Exception e)
    {

    throw new Exception("Ошибка инициализации списка Тип услуги" + e.Message,e.InnerException);
    }
    return false;
    }
     
  2. pushkarev

    pushkarev Active Member

    Если я правильно понял вашу задачу, то вам нужно, чтобы на форме был предзаполнена переменная выпадающего списка. Для этого в этом скрипте, ей нужно просто присвоить нужное значение.
    Код:
    context.VyberiteUslugu = _servise.Items[0];
    PS: А еще подскажите зачем вы справочник копируете в выпадающий список, вместо выбора напрямую из справочника?
     
  3. zazimko

    zazimko New Member

    я это делаю для того, что когда делаю справочник на форме, то пользователи могут в него данные добавлять. и на форме отображаются значки, добавить и поиск. Чтобы пользователь не мог этого сделать, я выбрал такое решение. Так как справочники может редактировать только одно роль. и делать это он должен только на вкладке справочники.
     
  4. fizik

    fizik New Member

    Если у пользователя будут права только на просмотр элементов справочника, то и дополнительные значки (значок плюса) на форме отображаться не будут.
     
    1 это нравится
  5. zazimko

    zazimko New Member

    Проверял это в режиме отладки и значки были все время. Сейчас проверил в опубликованном процессе и да все верно. Спасибо
     
  6. yambr

    yambr Member

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

    zazimko New Member

    До кастомных форм еще не дошел, пока изучаю, что и как можно делать с помощью сценариев. Потом дойду до кастомизации интерфейсов
     
  8. pushkarev

    pushkarev Active Member

    Эта настройка свойства в конструкторе форм есть сейчас эта настройка (начиная с версии 3.10.5) Так что кастомную форму можно не делать.
     
    1 это нравится
  9. zazimko

    zazimko New Member

    Переделал выпадающие списки на справочники. но теперь не получается отфильтровать их.
    Если коротко, то есть 3 справочника. Идентификатор заявки (Содержит наименование) Услуги (содержит наименование и идентифиактор заявки как объект) И тип заявки (содержит наименование и идентифиактор заявки как объект). Тип заявки зависит от Выбранной услуги.
    Делаю следующие:
    var settings = (EntitySettings)context.GetSettingsFor(c=>c.YkazhiteTipZayavki);
    settings.FilterQuery = context.VyberiteYslugu != null ? "Identifikator = " + context.VyberiteYslugu.Identifikator.Naimenovanie : "Id > 0";
    settings.Save();
     
  10. zazimko

    zazimko New Member

    При отработке фильтр выводит следующие Screenshot_2.png
     
  11. r.kiyamov

    r.kiyamov Member

    Проверьте корректность EQL запросов какие-то они у вас странные. В администрировании есть раздел для составления и проверки EQL по любым объектам. Ну и ошибка похожа не на системную. Она похожа на то что вы что-то не то ищите.
     
  12. zazimko

    zazimko New Member

    Ничего странного тут не вижу.
    Проблему решил. Ошибка в том, что я фильтровал по свойству наименования, а надо было по Id
    settings.FilterQuery = context.VyberiteYslugu != null ? "Identifikator = " + context.VyberiteYslugu.Identifikator.Id : "Id > 0";
     
  13. Andrey765

    Andrey765 New Member

    Подскажите пожалуйста, как присвоить полю RazrabotchikDog (тип выпадающий список) значение из этого списка
    try
    {
    if (context.TipDogovora.Value == "Типовой")
    {
    form.For(c => c.RazrabotchikDog).ReadOnly(true).Visible(true);
    var vid = context.RazrabotchikDog = "ОдиОЮР" // ошибка, нельзя преобразовать string в DropDownItem
    }
    else if (context.TipDogovora.Value == "Нетиповой")
    {
    form.For(c => c.RazrabotchikDog).Required(false).Visible(true);

    }
     
  14. romvbem

    romvbem Member

    var vid = context.RazrabotchikDog = new DropDownItem("ОдиОЮР")
     
    1 это нравится
  15. Andrey765

    Andrey765 New Member

    [QUOTE = "romvbem, post: 1852, участник: 140"] var vid = context.RazrabotchikDog = new DropDownItem (" ОдиОЮР ") [/ QUOTE]
    Большое спасибо!
     

Поделиться: