Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I set the width of dijit.form.Select?

I have a programmatically generated dijit.form.Select. Unlike most other widgets, the Selects do not offer a resize method like

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

I have not found a standardized way of setting the width of a select. This is quite bad because the autosizing makes Dialogs "explode" on long select values.

Is there a standard way to resize a select I have missed? Or do I have mess with the markup of the select the hard way?

Thanks!

like image 397
Steffen Müller Avatar asked Sep 24 '10 20:09

Steffen Müller


4 Answers

This can be achieved with CSS by setting the width of the inner label like this:

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

.tundra .dijitSelectLabel {
    width: 120px;
    overflow: hidden;
}
like image 121
James Avatar answered Sep 23 '22 00:09

James


Why wouldn't you simply do this by setting the widget's style?

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

Unfortunately, due to how the widget is written, this doesn't work if you hook up the width in a CSS class, or if you set the width style after the widget has been created.

like image 30
Ken Franqueiro Avatar answered Sep 22 '22 00:09

Ken Franqueiro


I would use

dojo.marginBox(selectWidget.domNode, {w: width, h:height})
like image 1
Bishnu Avatar answered Sep 21 '22 00:09

Bishnu


Give style to constructor:

var mySelect = new Select({
      id: 'mystatus',
      name: 'mystatus',
      style: {width: '150px'},
      required : false, 
      store: os,
      searchAttr: 'label',
  }, "mystatus");
like image 3
Danubian Sailor Avatar answered Sep 20 '22 00:09

Danubian Sailor