FineReport——JS監聽其他控件事件


首先在參數面板和報表中分布添加一個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", "");
 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM