0

私のグリッドでは、Web サービスから返されたステータスに基づいて、チェック ボックスと文字列データを使用できるようにする必要があります。現在、以下に示すカスタム レンダラー関数を作成しています。 function customcolumn1(value, metadata, record) {

    var completedTime = record.get('nccompletedTime');
    var completedByLastName = record.get('nccompletedByLastName');
    var completedByFirstName = record.get('nccompletedByFirstName');
    if (value == 'Completed') {
        return completedTime + " " + completedByLastName + "," + completedByFirstName;
    } else if (value == 'Pending') {
        return "<input type='checkbox' disabled>";
    } else if (value == 'Assigned') {
        return "<input type='checkbox'>";
    }
}

そしてグリッドは

var SAFjobgrid = Ext.create('Ext.grid.Panel', {
    store: store,
    columns: [
        {
        text: "",
        width: 30,
        renderer: customSeqNumber,
        dataIndex: 'sequenceNumber'},
    {
        text: "Task",
        width: 350,
        renderer: customTask,
        dataIndex: 'label'},
    {
        text: "Complete",
        width: 160,
        renderer: customcolumn2,
        dataIndex: 'stampActionStatus'},
    {
        text: "Verified",
        width: 160,
        renderer: customcolumn,
        dataIndex: 'verifyActionStatus'},
    {
        text: "Non Compliance",
        flex: 1,
        renderer: customcolumn1,
        dataIndex: 'ncActionStatus'}

    ]
});

今、私はチェックボックスをチェックして、それらのレコードのスタンプIDをキャプチャしたいと思います.そして、グリッドの外側にある更新ボタンをクリックすると、キャプチャされたスタンプIDでWebサービスを呼び出すことができるはずです.onclickイベントをオンにしようとしました複数のチェックボックスを選択すると、複数のスタンプ ID が Web サービスに送られ、チェックボックスをオフにすると、対応するスタンプ ID がスタンプ ID から削除されます。誰でもこれを手伝ってもらえますか..

4

1 に答える 1

0

CheckColumn ユーザー拡張を見ることができますhttp://docs.sencha.com/ext-js/4-1/#!/api/Ext.ux.CheckColumnしかし、あなたの場合、このようなレンダラーメソッドをオーバーライドする必要があります

renderer : function(value, meta, record){
    var cssPrefix = Ext.baseCSSPrefix,
        cls = [cssPrefix + 'grid-checkheader'],
        completedTime = record.get('nccompletedTime'),
        completedByLastName = record.get('nccompletedByLastName'),
        completedByFirstName = record.get('nccompletedByFirstName');

    if (value == 'Completed') {
        //render string instead of checkbox
        return Ext.String.format('{0} {1},{2}', completedTime, completedByLastName, completedByFirstName);
    }

    if (value === 'Assigned') {
        cls.push(cssPrefix + 'grid-checkheader-checked');
    }
    //render checkbox stub, 
    //it is actually a div element with special css classes to simulate checkbox
    return '<div class="' + cls.join(' ') + '">&#160;</div>';
}

すべてのチェック済み/未チェックの行を収集するには、このストア メソッドを使用できますhttp://docs.sencha.com/ext-js/4-1/#!/api/Ext.data.AbstractStore-method-getUpdatedRecords モデルの配列を返しますこの列をチェック/チェック解除することで更新された

于 2012-09-06T15:46:48.610 に答える