【发布时间】:2012-05-04 10:55:42
【问题描述】:
您好,这是我的 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();
请帮帮我!
【问题讨论】:
-
你为什么不把网格(或者你喜欢的单元格)作为对话框的参数传递?我会扩展 dijit.Dialog 来制作一个支持网格参数的自定义,这将允许您使用自己的函数扩展 Dialog 来操作网格
-
至于将单元格传递给对话框,我已经尝试过了,但是当我尝试设置它的值时,我收到一条错误消息
cannot set innerHTML of null。 -
如果单元格参数为空,则表示你没有正确传递它:) 无论如何,尝试扩展对话框,并在其中添加你自己的东西,它会让你的生活更轻松
-
问题是它不为空,我已经检查过了。只是因为当对话框即将关闭而不是关闭时调用我尝试设置值的函数。因此 dojo 无法正确定位 dom 节点。我会研究继承,但不知道该怎么做。
标签: javascript dojo event-handling dgrid