2010-09-24 2 views
7

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

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

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

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

Спасибо!

ответ

3

Почему бы вам не просто сделать это, установив стиль виджета?

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

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

+0

Спасибо! На самом деле это проблема: мне нужно было изменить размер выбранного ПОСЛЕ, когда виджет был создан. Не знал о том, что он работает до создания. –

+0

@ken Это создает фиксированную ширину, хотя верно? Im борется с установкой ширины 'max'. Если пользователь выбирает «вариант 2», я хочу, чтобы выбор был равным 150 пикселей, если они выбирают «sdfsdfsdfds fdsfdsdfdasf asfasdfadsf adsfasf». Выбор должен усекать до максимума 450 пикселей. Я сделал это с помощью css, но IE8 имеет скрытую ошибку max-width и overflow, поэтому для ie8 у меня есть некоторые js, которые изменяют его размер. Проблема с js-решением - это выбор «вспышки» в другую позицию до того, как js может изменить размер Это. Если выбрано короткое значение, тогда длинная вспышка выбора находится в неправильном положении. Уродливое исправление. – maehue

+2

@MigoFast: ответ Кена действительно не работает, как только вы начинаете пытаться добавлять опции. (См. Http://jsfiddle.net/QEjYD/568/). Однако приведенный ниже ответ Джеймса. См. Http://jsfiddle.net/QEjYD/569/ – inanutshellus

1

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

dojo.marginBox(selectWidget.domNode, {w: width, h:height}) 
+0

Спасибо за ответ! Пробовал это уже, но это закручивает выбранный диджит (стрелка вниз справа заполняет дополнительную ширину, реальное значение выбора остается авторизованным, как и раньше). Угадай, мне придется изменить это с трудом, спасибо в любом случае! –

9

Это может быть достигнуто с помощью CSS, установив ширину внутренней этикетке, как это:

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

.tundra .dijitSelectLabel { 
    width: 120px; 
    overflow: hidden; 
} 
+1

Что делать, если я хочу установить ширину на 100%? или что, если я хочу установить ширину шириной, как ее родительский элемент? 'width: 100%;' не работает, не знаю, как установить его в этом случае? – Mai

0

попробовать этот

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

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

Дайте стиль конструктору:

var mySelect = new Select({ 
     id: 'mystatus', 
     name: 'mystatus', 
     style: {width: '150px'}, 
     required : false, 
     store: os, 
     searchAttr: 'label', 
    }, "mystatus"); 
Смежные вопросы