Как мне установить ширину dijit.form.Select?

У меня есть программно сгенерированный dijit.form.Select. В отличие от большинства других виджетов, селекторы не предлагают метод изменения размера, как

dijit.resize({w: width, h: height});

Я не нашел стандартизированный способ установки ширины выбора. Это довольно плохо, потому что автоматическое изменение размеров заставляет диалоги «взрываться» при длинных выбранных значениях.

Есть ли стандартный способ изменить размер выбора, который я пропустил? Или у меня беспорядок с разметкой на избранном трудном пути?

Спасибо!

Ответы на вопрос(5)

Датьстиль для конструктора:

var mySelect = new Select({
      id: 'mystatus',
      name: 'mystatus',
      style: {width: '150px'},
      required : false, 
      store: os,
      searchAttr: 'label',
  }, "mystatus");

установив ширину внутренней метки следующим образом:

.tundra .dijitSelect .dijitButtonText {
    text-align: left;
}

.tundra .dijitSelectLabel {
    width: 120px;
    overflow: hidden;
}
 Mai18 авг. 2015 г., 12:24
Что если я хочу установить ширину на 100%? или что, если я хочу установить ширину, равную ширине его родительского элемента?width: 100%; не сработало, есть идеи как его установить в этом случае?
Решение Вопроса

http://jsfiddle.net/QEjYD/1/

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

 Steffen Müller04 окт. 2010 г., 09:38
Спасибо! Это было на самом деле проблема: мне нужно было изменить размер выбора после создания виджета. Не было известно о том, что это работает до создания.
 inanutshellus26 нояб. 2012 г., 17:09
@MigoFast: ответ Кена не работает, когда вы начинаете пытаться добавить опции. (Увидетьjsfiddle.net/QEjYD/568) Тем не менее, ответ Джеймса ниже. Увидетьjsfiddle.net/QEjYD/569
 maehue18 окт. 2012 г., 03:05
@ken Это создает фиксированную ширину, правда? Я борюсь с установкой максимальной ширины. Если пользователь выбирает «вариант 2», я хочу, чтобы выбор был 150px, если он выбирает «sdfsdfsdfds fdsfdsdfdasf asfasdfadsf adsfasf». Выбор должен усекаться максимум до 450px. Я сделал это с помощью css, но IE8 имеет скрытую ошибку максимальной ширины и переполнения - поэтому для ie8 у меня есть несколько js, которые меняют его размер, проблема с решением js заключается в том, что select 'мигает' в другую позицию, прежде чем js сможет изменить размер Это. Если выбрано короткое значение, то длинное - мигание выбора находится в неправильном положении. Гадкий Фикс.

попробуй это

.dijitSelect .dijitButtonNode {
  width: 16px !important;
}

dom-style.set(dojo.query('.dijitSelect')[0], 'width', with);

я хотел бы использовать

dojo.marginBox(selectWidget.domNode, {w: width, h:height})
 Steffen Müller25 сент. 2010 г., 11:21
Спасибо за ответ! Это уже пробовал, но это запутывает выбранный дижит (стрелка вниз справа заполняет дополнительную ширину, реальное значение выбора остается прежним, как и раньше). Думаю, мне придется изменить его трудным способом, в любом случае, спасибо!

Ваш ответ на вопрос