2010-09-24 33 views
7

我有一個編程生成的dijit.form.Select。與大多數其他部件,則選擇不提供像如何設置dijit.form.Select的寬度?

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

我還沒有找到設置選擇的寬度標準的方式調整大小的方法。這很糟糕,因爲自動調整使得對話框在長選擇值上「爆炸」。

是否有一個標準的方式來調整我已經錯過的選擇?或者,我對選擇困難方式的標記感到困惑嗎?

謝謝!

回答

3

你爲什麼不乾脆通過設置widget的風格做到這一點?

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

不幸的是,由於小部件是如何寫的,這工作,如果你掛鉤的寬度在CSS類,或者如果你後設置寬度樣式的小部件有被創建。

+0

謝謝!那實際上是這個問題:我需要調整創建小部件後的選擇大小。沒有意識到它在創作之前就有效。 – 2010-10-04 07:38:12

+0

@ken這會創建一個固定的寬度,但對嗎?我努力設置'最大'寬度。如果用戶選擇'選項2',我希望選擇爲150px,如果他們選擇'sdfsdfsdfds fdsfdsdfdasf asfasdfadsf adsfasf'選擇應截斷最多450px。我已經完成了這個使用CSS,但IE8有一個最大寬度和溢出隱藏的bug - 所以對於ie8我有一些JS調整它的問題與JS解決方案是選擇'閃爍'之前,可以調整大小不同的位置它。如果選擇了一個較短的值,那麼一個較長的值會出現閃爍的選擇位置錯誤。醜陋的修復。 – maehue 2012-10-18 01:05:27

+2

@MigoFast:一旦你開始嘗試添加選項,Ken的回答並不真正起作用。 (見http://jsfiddle.net/QEjYD/568/)然而James的回答如下。請參閱http://jsfiddle.net/QEjYD/569/ – inanutshellus 2012-11-26 16:09:59

1

我會用

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

感謝你的回答!嘗試過了,但是這樣會把選擇的dijit擰緊(右邊的下拉箭頭填充了額外的寬度,真正的選擇值保持與之前一樣自動調整)。猜猜我將不得不以艱難的方式修改它,謝謝! – 2010-09-25 09:21:26

9

這可以用CSS設置內層標籤這樣的寬度來實現:

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

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

如果我想將寬度設置爲100%,該怎麼辦?或者如果我想將寬度設置爲與其父元素一樣寬? '寬度:100%;'沒有工作,任何想法如何設置它在這種情況下? – Mai 2015-08-18 10:24:08

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");