我想使用渲染器执行锁定/解锁图标按钮。如果单击该按钮,它将显示消息框是/否以确认。如果单击是,则应调用SubmitValue函数。问题是它无法调用javascript SubmitValue 功能。单击是确认框后如何调用功能?
Renderer.js
var renderLock = function (value, p, record) {
if (JSON.parse(value))
{
return '<img src="Images/icon/lock.png" >';
}
else
{
return '<img src="Images/icon/unlock.png" >';
}
}
Common.js
var GetGrid_LockButton = function (Active, FieldId, FieldName, Grid_Name, URL) {
return {
menuDisabled: true
, sortable: false
, hidden: Permit_No_Del
, text: 'Lock'
, renderer: renderLock
, align: 'center'
, xtype: 'actioncolumn'
, dataIndex: 'IS_LOCK'
, width: 45
, listeners: {
click: function () {
Ext.MessageBox.confirm('confirm?', function (btn) {
if (btn == "yes") {
SubmitValue(URL, { id: rec.get(FieldId) }, "Ext.getCmp('" + Grid_Name + "').getStore().load();", "Yes");
}
});
}
}
};
}
提前谢谢。
答案 0 :(得分:0)
我认为您可能在范围方面遇到问题,请注意将“this”关键字添加为下方确认调用的修改版本中的最后一个参数
Ext.MessageBox.confirm('confirm?', function (btn) {
if (btn == "yes") {
SubmitValue(URL, { id: rec.get(FieldId) }, "Ext.getCmp('" + Grid_Name + "').getStore().load();", "Yes");
}
},this);
默认情况下,确认调用中的作用域默认为浏览器窗口对象,因此我想在该级别上无法访问SubmitValue函数。