0

私が持っているのは、ComboBox (dojo 1.8 を使用) で 100 年以上のリストを選択したものです。大きなリストをスクロールする代わりに、各ディスプレイをインラインブロックにしてグリッドに見えるディスプレイにする必要がありました (これは機能します)。

新しい要件は、次のように水平に表示するのではなく、次のようにすることです。

2013 2012 2011 2010
2009 2008 2007 2006
2005 2004 2003 2002
2001 2000

次のように垂直に表示する必要があります。

2013 2009 2005 2001
2012 2008 2004 2000
2011 2007 2003
2010 2006 2002

基本的に、コンボ ボックスのメニュー項目を 10 項目ごとにグループ化し、それらを別の div にラップして、CSS で (CSS3 を使用せずに) 列に変換できるようにしたいと考えています。

選択が最初に選択された後にメニューリストがDOMで作成されるため、メニューリストのレンダリング方法を操作するのに少し問題があります。

データ Dojo タイプを含む HTML の簡単なリファレンスを以下に示します。

<select name="year" id="year" value="1942" data-dojo-type="dijit/form/ComboBox">
    <option value="2013">2013</option>
    <option value="2012">2012</option>
    <option value="2011">2011</option>
    <option value="2010">2010</option>
    <option value="2009">2009</option>
    <option value="2008">2008</option>
    <option value="2007">2007</option>
    <option value="2006">2006</option>
    <option value="2005">2005</option>
    <option value="2004">2004</option>
    <option value="2003">2003</option>
    <option value="2002">2002</option>
    <option value="2001">2001</option>
    <option value="2000">2000</option>
    <option value="1999">1999</option>
    <option value="1998">1998</option>
    <option value="1997">1997</option>
    <option value="1996">1996</option>
    <option value="1995">1995</option>
    <option value="1994">1994</option>
    <option value="1993">1993</option>
    <option value="1992">1992</option>
    <option value="1991">1991</option>
    <option value="1990">1990</option>
    <option value="1989">1989</option>
    <option value="1988">1988</option>
    <option value="1987">1987</option>
    <option value="1986">1986</option>
    <option value="1985">1985</option>
    <option value="1984">1984</option>
    <option value="1983">1983</option>
    <option value="1982">1982</option>
    <option value="1981">1981</option>
    <option value="1980">1980</option>
    <option value="1979">1979</option>
    <option value="1978">1978</option>
    <option value="1977">1977</option>
    <option value="1976">1976</option>
    <option value="1975">1975</option>
    <option value="1974">1974</option>
    <option value="1973">1973</option>
    <option value="1972">1972</option>
    <option value="1971">1971</option>
    <option value="1970">1970</option>
    <option value="1969">1969</option>
    <option value="1968">1968</option>
    <option value="1967">1967</option>
    <option value="1966">1966</option>
    <option value="1965">1965</option>
    <option value="1964">1964</option>
    <option value="1963">1963</option>
    <option value="1962">1962</option>
    <option value="1961">1961</option>
    <option value="1960">1960</option>
    <option value="1959">1959</option>
    <option value="1958">1958</option>
    <option value="1957">1957</option>
    <option value="1956">1956</option>
    <option value="1955">1955</option>
    <option value="1954">1954</option>
    <option value="1953">1953</option>
    <option value="1952">1952</option>
    <option value="1951">1951</option>
    <option value="1950">1950</option>
    <option value="1949">1949</option>
    <option value="1948">1948</option>
    <option value="1947">1947</option>
    <option value="1946">1946</option>
    <option value="1945">1945</option>
    <option value="1944">1944</option>
    <option value="1943">1943</option>
    <option value="1942">1942</option>
    <option value="1941">1941</option>
    <option value="1940">1940</option>
    <option value="1939">1939</option>
    <option value="1938">1938</option>
    <option value="1937">1937</option>
    <option value="1936">1936</option>
    <option value="1935">1935</option>
    <option value="1934">1934</option>
    <option value="1933">1933</option>
    <option value="1932">1932</option>
    <option value="1931">1931</option>
    <option value="1930">1930</option>
    <option value="1929">1929</option>
    <option value="1928">1928</option>
    <option value="1927">1927</option>
    <option value="1926">1926</option>
    <option value="1925">1925</option>
    <option value="1924">1924</option>
    <option value="1923">1923</option>
    <option value="1922">1922</option>
    <option value="1921">1921</option>
    <option value="1920">1920</option>
    <option value="1919">1919</option>
    <option value="1918">1918</option>
    <option value="1917">1917</option>
    <option value="1916">1916</option>
    <option value="1915">1915</option>
    <option value="1914">1914</option>
    <option value="1913">1913</option>
    <option value="1912">1912</option>
    <option value="1911">1911</option>
    <option value="1910">1910</option>
    <option value="1909">1909</option>
    <option value="1908">1908</option>
    <option value="1907">1907</option>
    <option value="1906">1906</option>
    <option value="1905">1905</option>
    <option value="1904">1904</option>
    <option value="1903">1903</option>
    <option value="1902">1902</option>
    <option value="1901">1901</option>
    <option value="1900">1900</option>
</select>

もっと簡単に言えば、最初の「前の選択肢」div (.dijitMenuItem) をスキップしてから、親 div を追加し、10 個のアイテムをトスし、別のアイテムを追加し、さらに 10 個のアイテムをトスします...次のように:

<div class="dijitMenuItemGroup">
    <div class="dijitReset dijitMenuItem" role="option" item="0" id="year_popup0">2013</div>
    <div class="dijitReset dijitMenuItem" role="option" item="1" id="year_popup1">2012</div>
    <div class="dijitReset dijitMenuItem" role="option" item="2" id="year_popup2">2011</div>
    <div class="dijitReset dijitMenuItem" role="option" item="3" id="year_popup3">2010</div>
    <div class="dijitReset dijitMenuItem" role="option" item="4" id="year_popup4">2009</div>
    <div class="dijitReset dijitMenuItem" role="option" item="5" id="year_popup5">2008</div>
    <div class="dijitReset dijitMenuItem" role="option" item="6" id="year_popup6">2007</div>
    <div class="dijitReset dijitMenuItem" role="option" item="7" id="year_popup7">2006</div>
    <div class="dijitReset dijitMenuItem" role="option" item="8" id="year_popup8">2005</div>
    <div class="dijitReset dijitMenuItem" role="option" item="9" id="year_popup9">2004</div>
</div>
<div class="dijitMenuItemGroup">
    <div class="dijitReset dijitMenuItem" role="option" item="10" id="year_popup10">2003</div>
    ...
</div>
...

それはできますか?そのようなもののための dijit prop はありますか?

4

1 に答える 1

0

これは、dijit/form/ComboBox を使用すると不可能に見えます (しかし、おそらく私が間違っている可能性があります)。理由は、dijit/form/ComboBox がオプショングループをサポートしていないためです。https://bugs.dojotoolkit.org/ticket/10761を参照してください。

代わりに dgrid を使用してカスタム ウィジェットを作成することをお勧めします。それがわからない場合は、ドロップダウン選択の代わりとして使用する方法の例を確認できます (オプションをレンダリングする方法に柔軟性が追加されています): http://dojofoundation.org/packages /dgrid/チュートリアル/drop_down/

于 2013-06-03T21:57:28.737 に答える