0

こんにちは、これは私の dGrid html のタラです:

        <table id="Assign_Segments" class="dGrid" 
    dojoType="dgrid.GridFromHtml" style="width:700px">
            <tbody>
                <tr>
                    <th data-dgrid-column="{field:'InputCell', sortable:true}">
    <bean:message key="IDD_POPSEG_PAGE.IDC_LBL_INPUTCELL" bundle="flowchart"/>
                    </th>
                    <th data-dgrid-column="dgrid.Editor({field:'Segment', 
    sortable:false, widgetArgs: segmentSelectOptions}, dijit.form.Select, 'click')">
  <bean:message key="IDD_POPSEG_PAGE.IDC_LBL_SEGNAME" bundle="flowchart"/></th>
                </tr>
            </tbody>
     </table>

私は以下を使用してこれを配線しました:

dojo.global.segmentSelectOptions = function(object){

    var opts = [{
        'label': 'seg1',
        'value': 'seg1'
    }, {
        'label':'New Segment...',
        'value':'new'
    }, {
        'label': 'seg2',
        'value': 'seg2'
    }];

    return { onChange: function(newValue){
        if(newValue=='new'){
            var dlg =  dijit.getWidget('CreateFolder','dijit.Dialog');
            dlg.show();

        }
    }, 
    class: "fullWidthWidget", 
    options: opts};
};

ご覧のとおり、このコードはダイアログを開きます。dgridダイアログの特定のボタンを押したときに選択したセルにアクセスし、ダイアログの入力に基づいてセルの値を変更したいと考えています。その関数からセルにアクセスするにはどうすればよいですか? 問題は、dgrid 内の任意のセルである可能性があり、使用する ID がないことです。dijit.byId();

私を助けてください!

4

1 に答える 1

0

解決策は、ダイアログの hide() から、グリッドを変更する関数にコールバックを渡すことです。ただし、ストアの put() ステートメントを使用する前に、次の行を使用する必要があります。

grid.dirty = {};
于 2012-05-28T10:40:32.280 に答える