首先在參數面板和報表中分布添加一個button,用於被監聽:
參數面板
控件名:temp;
temp點擊事件:alert("temp");
報表
控件名:exprt;
temp點擊事件:alert("exprt");
再次在參數面板和報表中添加一個按鈕,可不命名:
在參數面板的按鈕控件的點擊事件中添加如下代碼:
this.options.form.getWidgetByName("temp").fireEvent('click'); //參數面板獲取參數面板控件,並觸發其clic事件 contentPane.getWidgetByName('exprt').fireEvent("click");//參數面板獲取報表中控件,也觸發其click事件
在報表中的自定義按鈕的點擊事件中添加如下JS:
contentPane.parameterEl.getWidgetByName('temp').fireEvent('click'); //報表中獲取參數面板控件,並觸發其click事件 contentPane.getWidgetByName('exprt').fireEvent("click");//報表中獲取報表控件,也觸發其click事件
點擊兩個按鈕都會出現相同的效果如下:
其他事件,例如編輯前,編輯后:
this.options.form.getWidgetByName("temp").fireEvent("afteredit"); this.options.form.getWidgetByName("temp").fireEvent("beforeedit");
補充:對於一個按鈕事件去觸發另外一個控件的事件,也可以通過:首先定義一個文本框、下拉框控件等可編輯控件,然后為其定義編輯后事件,再定義一個控件,並在其事件中為可編輯控件賦值,即可達到觸發另外一個控件的事件,改方法用處更多,也比較方便。
例如,在參數面板定義一個按鈕和一個文本控件temp控件編輯后事件中添加如下JS:
alert("我被觸發了!");
然后在按鈕的點擊事件中添加如下JS:
this.options.form.getWidgetByName("temp").setValue('0');
JQ定義事件:
$('.content-container table tr').mouseover( function () { $(this).css("background-color", "#ababab"); //D5EBF8 } ).mouseout( function () { $(this).css("background-color", ""); }