---
tags: 國興實習
---
# M檔+Q檔子視窗(只更改前端)
### 要加入子視窗之檔案
#### 前端html
```htmlmixed=
<my-qubtn></my-qubtn> //添加按鈕
```
#### js
```javascript=
//sender 是 cshtml button 的 id 名稱
//url 是要開窗的網址路徑
//isAutoSearch 是否要開窗就查詢
$scope.quModals.push({ sender: 'btnNAME_S', url: '/DEMO/QTest', isMultiSelect: false, isAutoSearch: false });
//查詢子視窗接收事件 #將初始值放入查詢畫面欄位
$scope.$on("quModalInited", function (e, a_arg) {
$scope.searchDate.NAME = nvl(a_arg.oldRow['NAME'], '');
if (a_arg.isAutoSearch)
$scope.onBtnSearchClick();
})
//查詢子視窗回傳資料前事件 #檢查或加入欲回傳的資料
$scope.$on("quModalCallbacking", function (e, a_arg) {
})
//查詢子視窗顯示事件 #設定查詢子視窗屬性及參數(從主檔丟到子視窗的資料)
//NAME是你設定要查的欄位
$scope.$on("quModaling", function (e, a_arg, a_gridRow) { //主檔丟到子視窗的資料的資料
if (a_arg.sender == 'btnNAME_S'.toUpperCase()) {
a_arg.oldRow.NAME = $scope.searchData.NAME;
}
})
//查詢子視窗回傳資料事件 #sender為呼叫對象(從子視窗傳回主檔中的資料)
//NAME是你設定要查的欄位
$scope.$on("quModalCallbacked", function (e, a_arg) { //從子視窗傳回主檔中的資料
if ((a_arg.sender == "MTest".toUpperCase()) && (a_arg.dst == "btnNAME_S".toUpperCase())) {
$scope.searchData.NAME = a_arg.oldRow['NAME'];
}
})
```
### 作為子查詢視窗之Q檔
#### js
定義QuModal
```javascript=
$scope.setGridMasterUI();
```
刷新主檔
```javascript=
$scope.mScope.doSearch();//刷新查詢
```
隱藏子視窗
```javascript=
hideQuModal(); //close modal
```