我有一个包含有关事件数据的flextable。每行的第一个单元格包含一个按钮,其中包含对该事件的ID(即 btn_5_qaoebqiblqr9ss0182e7lrn89k@google.com ,其中 5 = rownumber和 qaoebqiblqr9ss0182e7lrn89k@google.com = eventId)。
function onClickShowEvent(e)
{ // Handle the event clicked in eventsTable
var app = UiApp.getActiveApplication();
var btnDelete = app.getElementById(btn_deleteEvent);
var eventId = e.parameter.source;
btn.setVisible(true).setTag(eventId); // Tag will be set to btn_5_qaoebqiblqr9ss0182e7lrn89k@google.com
// Check if tag has been set
var test = btn.getTag();
Logger.log('eventId= ' + eventId + ' setTag succes= ' + (eventId == test));
.....
}
事实证明,标签在这个阶段已经成功。
在按钮的eventhandler中,我想'告知'其他2个按钮(使用id btn_updateEvent和btn_deleteEvent)关于flextable中的哪个元素被选中,以便知道在点击按钮后必须处理什么事件。
我以为我可以使用标签,但它不起作用。
function onClickDeleteEvent(e)
{
var func = 'onClickDeleteEvent';
var app = UiApp.getActiveApplication();
var source = e.parameter.source; // Will be btn_deleteEvent
var btn = app.getElementById(source);
var eventId = app.getElementById(wid_eventsTable).getTag(); // returns eventId = null
Logger.log('in ' + func + ' source= ' + e.parameter.source + ' eventId= ' + eventId);
return appLocal;
}
但事实证明,getTag检索 null 怎么可能,我能做些什么来“传递”我需要的信息呢? 我想避免使用隐藏字段。
修改-1
如果我更改按钮的ID,则会收到错误。发生意外错误。
var btnDelete = appLocal.getElementById('btn_deleteEvent');
var infoEvent = bell + numRow + bell + event.getId(); // I use 'bell' for delimiting fields
var newId = 'btn_deleteEvent' + infoEvent;
btnDelete.setId(newId);
因此,使用按钮名称提供信息的技巧也不起作用。
答案 0 :(得分:0)
窗口小部件的TAG值在tagValue = e.parameter.widgetName_TAG
在你的情况下,这将是一个问题,因为按钮没有名称属性。我建议你使用另一种方法,比如另一个小部件上的标签或隐藏的小部件来存储你需要的信息。