0

一連のボタンを表示するために DataView を使用しています。データはストアから取得され、その中の各モデルにはボタンの背景色が含まれています。ボタンのテキストは変更できますが、モデルの値に基づいて背景色を変更するにはどうすればよいですか?

これは ButtonData モデルです。

Ext.define('Sencha.model.ButtonData', {
extend: 'Ext.data.Model',

config: {
    fields: [
         {name: 'text', type: 'auto'},
         {name: 'color', type: 'auto'}
           ]
       }
});

この例に基づいてhttp://www.sencha.com/blog/dive-into-dataview-with-sencha-touch-2-beta-2 私はこの設定で DataItem を持っています:

config : {  
      dataMap: {  
          getButton : { setText: 'text'}, // works!

 //problem is here: how do I set the background color based on the 'color' 
 // member form the 'ButtonData' model? 
                 },

    button: { 
      ui: 'plain' 
        }

}

問題は、「ButtonData」モデルの「color」メンバーに基づいて背景色を設定する方法ですか?

どうも、

マールテン

4

2 に答える 2

0

次のようなものを試してください

config : {  
  dataMap: {  
      getButton : { 
         setText: 'text',
         setButton: {}
      }
  }
}

次に、データビューで使用されるコンポーネントにsetButton関数を実装します。また、そこに単一の機能を持ち、その中ですべての仕事をすることを検討することもできます。

于 2012-06-21T08:13:55.007 に答える
0

ボタンの色は彩度の低下、暗さ、グラデーションなどの合成効果であるため、ボタンウィジェットにcolorプロパティはありません。したがって、1か所だけで色を変更することはできません。

推奨されるオプションは、(標準のテーマから始めて)独自のテーマを作成してから、ボタン用に別のテーマUIを作成することです。これは、テーマに次のような行を追加して行うことができます。

// you can add as many as you want.
@include sencha-button-ui('color1', #FF0000, 'glossy');
@include sencha-button-ui('color2', #00FF00, 'glossy');

sencha-touchテーマのthemes/stylesheets / sencha-touch / default / widgets/_buttons.scssファイルでその他のオプションを参照してください。

次に、モデルに応じてボタンのuiプロパティを変更できます。このリンクは、独自のテーマを立ち上げて実行するのに役立つ可能性があります。

http://www.sencha.com/blog/getting-sassy-with-css

独自のテーマで作業することのその他の利点は、cssに簡単に触れることができること、cssファイルのサイズを最適化して不要な部分を削除できることなどです。

于 2012-06-20T15:19:59.730 に答える