2012-05-04 58 views
0

你好,這是我的dGrid HTML的鱈魚:連接dgrid一個對話框

 <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中的任何單元格,並且它們沒有要使用的編號dijit.byId();

請幫我一把!

+0

你爲什麼不只是通過網格(或單元格,如果你願意)爲您的對話框的參數? 我會擴展dijit.Dialog來做一個自定義的支持一個網格參數,這將允許您擴展對話框與您自己的函數來操縱網格 – PEM

+0

儘可能將單元格傳遞到對話框,我已經嘗試但是當我嘗試設置它的值時,我得到一個錯誤,說'不能設置null的innerHTML'。 – MozenRath

+0

如果單元格參數爲空,那麼這意味着你沒有正確通過它:) 無論如何,嘗試擴展對話框,並在那裏添加自己的東西,它會讓你的生活更輕鬆 – PEM

回答

0

解決的辦法是從對話框的hide()回調一個函數,在該函數中改變網格。但是,您需要使用您的商店的put()語句之前,使用該行:

grid.dirty = {};