2016-09-29 7 views
0

SmartClient ListGridにはいくつかの列があります。 ListGridには、編集モード(ダブルクリックで入力)とブール値フィールドを持ついくつかのテキストフィールドがあります。SmartClient ListGrid boolenフィールド、editModeなし(ダブルクリック)

私がする必要があるのは、booleanフィールドのeditModeを無効にして(ダブルクリックを無効にする)、ブーリアン値を変更するための通常の「ワンクリック」を有効にすることです。

他の列でもダブルクリックが有効です。

アイデア?

マイコード:

isc.ListGrid.create({ 
     ID: "ColumnsList", 
     saveLocally: true, 
     filterLocalData: true, 
     alternateRecordStyles: true, 
     canReorderRecords: true, 
     selectionAppearance: 'rowStyle', 
     autoFetchData: false, 
     showRollOver: true, 
     canRemoveRecords: true, 
     deferRemoval: false, 
     initWidget: function() { 
      this.Super('initWidget', arguments); 
      var me = this; 

      var fields = [ 
       {name: 'id', primaryKey: true, required: true, showIf: 'false', canEdit: false, canHide: false}, 
       { 
        name: 'name', 
        validOperators: [], 
        canEdit: true, 
        canHover: false, 
        canSort: false, 
        title: 'DB Column Name' 
       }, 
       { 
        name: 'primaryKey', 
        validOperators: [], 
        width: '12%', 
        canEdit: true, 
        canHover: true, 
        canSort: false, 
        //canToggle: true, 
        title: 'Primary Key', 
        type: 'boolean', 
        changed: function (form, item, value) { 
         // my logic to allow only one value per column is selected 
        } 
       } 
      ]; 
      me.setFields(fields); 
     } 
} 

答えて

0

あなたはrecordDoubleClickを追加することがあります。発射からグリッド・レベルのハンドラを防ぐために、ブール型フィールドに「falseを返します」。また

isc.ListGrid.create({ 
    ID: "countryList", 
    width:550, height:224, alternateRecordStyles:true, 
    // use server-side dataSource so edits are retained across page transitions 
    dataSource: countryDS, 
    // display a subset of fields from the datasource 
    fields:[ 
     {name:"countryCode", title:"Flag", width:40, type:"image", imageURLPrefix:"flags/16/", imageURLSuffix:".png", canEdit:false}, 
     {name:"countryName"}, 
     {name:"continent"}, 
     {name:"member_g8", recordDoubleClick:"return false"}, 
     {name:"population"}, 
     {name:"independence"} 
    ], 
    autoFetchData: true, 
    canEdit: true 
}) 
0

あなたは以下を使用することができ、すべてのブールフィールドをダブルクリックを無効にしたい場合:

isc.ListGrid.create({ 
    rowDoubleClick: function (record, recordNum, fieldNum) { 
     if (this.getField(fieldNum).type != "boolean") { 
      this.Super("rowDoubleClick", arguments); 
     } 
    }, 
    fields: [ 
     { name: "isActive", type: "boolean", canEdit: false }, 
     { name: "firstName", type: "text", canEdit: true }, 
     { name: "lastName", type: "text", canEdit: true }, 
    ], 
    data: [ 
     { isActive: false, firstName: "Alex", lastName: "Smith" }, 
     { isActive: true, firstName: "Jane", lastName: "Monroe" }, 
    ] 
}); 

あなたが探しているなら、私は質問を理解して100%ではないんだけど、ブール値フィールドの変更を許可/禁止する方法は、ListGridField.canToggle

関連する問題