Access開發(fā)中,子窗體的應(yīng)用是一大特色,能非常方便地顯示數(shù)據(jù),篩選數(shù)據(jù)
有問到如何通過按鈕篩選子窗體的值來進(jìn)行查詢(行),篩選列顯示不同的字段
1、設(shè)置子窗體的數(shù)據(jù)源
通過動(dòng)態(tài)設(shè)置子窗體的記錄源,動(dòng)態(tài)篩選數(shù)據(jù)。通過選擇不同的訂單號(hào),篩選該訂單號(hào)下的數(shù)據(jù)
Private Sub Command3_Click() Dim strSql As String strSql="Select * from 訂單明細(xì)表 where 訂單號(hào)=" & Me.Text1 & "" Me.訂單明細(xì)窗體.Form.RecordSource=strSql Me.訂單明細(xì)窗體.Form.Requery End Sub
解析:子窗體名為“訂單明細(xì)窗體”,篩選的文本框?yàn)椤癟ext1”。通過RecordSource來動(dòng)態(tài)設(shè)置記錄源
2.動(dòng)態(tài)替換子窗體
Private Sub Command4_Click() Me.訂單明細(xì)窗體.SourceObject="查詢.訂單明細(xì)查詢" End Sub
解析:為子窗體設(shè)置一個(gè)新的對(duì)象,一個(gè)名為"訂單明細(xì)查詢"的查詢,這里也可以是一個(gè)表,或者是窗體。
源碼下載:http://www.office-cn.net/access-interface/364.html
窗體與子窗體之間的通信
在之前文章講解windows程序設(shè)計(jì)過程中,我們?cè)枋隽藈indows程序窗口之間通信與控制實(shí)現(xiàn)方法與過程,如窗體之間參數(shù)傳遞等。本文主要從Web程序開發(fā)前端JavaScript腳本語言角度對(duì)窗體之間的通信及控制進(jìn)行說明。
window對(duì)象是是BOM中其他所有對(duì)象的父對(duì)象,其很多屬性本身就是它的子對(duì)象。通俗理解當(dāng)瀏覽器中每打開一個(gè)窗口就會(huì)創(chuàng)建一個(gè)window對(duì)象的實(shí)例。JavaScript程序語言可以通過該實(shí)例實(shí)現(xiàn)對(duì)窗體進(jìn)行控制。window對(duì)象基本屬性描述如下圖:
window對(duì)象常用屬性
window對(duì)象常用屬性描述如上圖,其中與窗口參數(shù)傳遞與控制相關(guān)屬性主要包括parent屬性、opener屬性及closed屬性等。各屬性描述如下:
1、parent屬性
該屬性是指包含當(dāng)前窗口的父窗口,此處包含多用在框架結(jié)構(gòu)中,框架頁面是構(gòu)成框架的各個(gè)子頁面的parent。
2、opener屬性
opener屬性主要針對(duì)使用open方法打開的窗口,被打開的窗口即為子窗口,其父親窗口為opener。
3、closed屬性
該屬性主要用于判斷一個(gè)窗口是否被關(guān)閉,如被關(guān)閉則返回true邏輯值。
4、screen屬性
該屬性主要是指與終端瀏覽器尺寸相關(guān)值,主要包括屏幕的寬度、高度等。
以上給出了window對(duì)象基本屬性,除以上基本屬性之外,JavaScript還提供了window對(duì)象常用操作方法,方法描述如下:
window對(duì)象常用方法
window對(duì)象常用方法描述如上圖所示,其中與窗口打開相關(guān)函數(shù)主要包括open方法、close方法等。說明如下:
1、open()方法
該方法主要用于實(shí)現(xiàn)打開一個(gè)窗口,并對(duì)打開窗口URL及相關(guān)屬性進(jìn)行設(shè)置。函數(shù)返回值為被打開窗口的標(biāo)識(shí)。
2、close()方法
該方法主要用于實(shí)現(xiàn)關(guān)閉窗口,關(guān)閉窗口可以針對(duì)本身,也可以針對(duì)子窗口進(jìn)行關(guān)閉操作。
web中的父子窗口主要是指打開的網(wǎng)頁,子窗口為被打開的網(wǎng)頁,打開者為父窗口。本文所指的父子窗口通信主要包括參數(shù)的傳遞與方法調(diào)用。描述如下:
父窗口與子窗口通信
父窗口與子窗口通信主要借助窗口句柄或者窗口標(biāo)識(shí)實(shí)現(xiàn),在獲取句柄或者標(biāo)識(shí)后可以使用方法與屬性進(jìn)行操作,下面我們對(duì)參數(shù)傳遞及方法調(diào)用進(jìn)行實(shí)例分析與說明。
1、父?jìng)髯訁?shù)傳遞
參數(shù)傳遞主要包括子窗口傳父窗口或者父窗口傳主窗口兩類。為演示操作,我們?cè)谥鞔翱谂c子窗口中分別添加文本框用于接收數(shù)據(jù)。效果如下圖所示:
參數(shù)傳遞測(cè)試Demo
參數(shù)傳遞測(cè)試Demo如上圖,當(dāng)父窗口點(diǎn)擊發(fā)送數(shù)據(jù)到子窗口時(shí),將子窗口中的文本框用于顯示所發(fā)送的數(shù)據(jù)。該功能實(shí)現(xiàn)主要借助于主窗口在打開子窗口時(shí)獲取子窗口的句柄即標(biāo)識(shí)。然后根據(jù)子窗口句柄操作子窗口文本框設(shè)置值。實(shí)現(xiàn)核心代碼如下:
父窗口傳遞數(shù)據(jù)給子窗口
父窗口傳遞數(shù)據(jù)給子窗口實(shí)現(xiàn)代碼如上所示,主要借助childWind句柄獲取子窗口的文本框設(shè)置其Value值。實(shí)現(xiàn)效果如下圖:
父?jìng)髯訉?shí)現(xiàn)窗口
2、子傳父參數(shù)傳遞
子傳父參數(shù)傳遞主要借助子窗口的opener屬性獲取主窗口,并設(shè)置主窗口文本字段值。在子窗口中為發(fā)送數(shù)據(jù)按鈕編寫onclick點(diǎn)擊處理函數(shù),函數(shù)如下:
子傳父實(shí)現(xiàn)代碼
如上圖通過opener屬性獲取父窗口句柄后可直接調(diào)用父窗口的getElementById獲取其對(duì)話框并設(shè)置父窗口文本框的Value實(shí)現(xiàn)子向父親傳遞參數(shù)。實(shí)現(xiàn)效果如下圖:
子傳父功能實(shí)現(xiàn)
3、命令操作的傳遞
理論上將無論父窗口還是子窗口只要獲取了對(duì)方的句柄即標(biāo)識(shí)之后,就可以調(diào)用對(duì)方window窗體的方法執(zhí)行操作。如父窗體關(guān)閉前可直接調(diào)用子窗體的close方法先關(guān)閉子窗體。實(shí)現(xiàn)代碼如下:
父窗體關(guān)閉子窗體
以上給出JavaScript開發(fā)過程中父窗口與子窗口通信的實(shí)現(xiàn)及相關(guān)案例代碼演示,如需完整代碼請(qǐng)關(guān)注并私信。在測(cè)試過程中通過父窗口獲取子窗口并進(jìn)行操作在Chrome瀏覽器下受到跨源請(qǐng)求規(guī)范約束無法執(zhí)行代碼,其他瀏覽器均可正常執(zhí)行。
本頭條號(hào)長期關(guān)注編程資訊分享;編程課程、素材、代碼分享及編程培訓(xùn)。如果您對(duì)以上方面有興趣或代碼錯(cuò)誤、建議與意見,可在評(píng)論區(qū)回復(fù)。更多程序設(shè)計(jì)相關(guān)教程及實(shí)例分享,期待大家關(guān)注與閱讀!相關(guān)文章鏈接如下:
前端設(shè)計(jì)-JavaScript實(shí)現(xiàn)Node節(jié)點(diǎn)的遍歷
Web前端設(shè)計(jì)-常用CSS選擇器說明及實(shí)例分析(二)
Web前端設(shè)計(jì)-常用CSS選擇器說明及實(shí)例分析(一)
言
iframe在復(fù)合文檔中經(jīng)常用到,利用jquery操作iframe可以大幅提高效率,本文主要給大家分享了關(guān)于簡(jiǎn)單使用JQUERY來操作IFRAME的一些記錄,這個(gè)使用純JS也可以實(shí)現(xiàn)。下面話不多說了,來一起看看詳細(xì)的介紹吧。
第一、在iframe中查找父頁面元素的方法:
$('#id', window.parent.document)
第二、在父頁面中獲取iframe中的元素方法:
$(this).contents().find("#id")
第三、在iframe中調(diào)用父頁面中定義的方法和變量:
parent.method parent.value
JQUERY、JS調(diào)用IFRAME父窗口與子窗口元素的方法
1.jquery 在iframe子頁面獲取父頁面元素代碼如下:
$("#id", parent.document)
2. jquery在父頁面 獲取iframe子頁面的元素 代碼如下:
$("#id",document.frames('iframename').document)
3.js 在iframe子頁面獲取父頁面元素代碼如下:
window.parent.document.getElementByIdx_x("id");
4.js 在父頁面獲取iframe子頁面元素代碼如下:
window.frames["iframe_ID"].document.getElementByIdx_x("id");
5.子類iframe內(nèi)調(diào)用父類函數(shù):
window.parent.func();
jquery_iframe父子級(jí)頁面事件使用
1、index.html
<body topmargin='0' leftmargin='0' style="background:#ccc"> //這里的屬性只是為了全屏下邊無間隙
index.html
<iframe src="main.html" id="indexMain" style="margin-bottom:-5px;position:relative;"></iframe> //這里的樣式的為了跳轉(zhuǎn)之后移動(dòng)端input輸入完成之后下邊無間隙
</body>
<script>
/*父級(jí)本頁面事件*/
function oIndexFn(){
alert("父級(jí)頁面index.html事件調(diào)用成功");
}
/*調(diào)用子頁面事件*/
$(document).click(function(){
alert("您點(diǎn)擊的是父頁面[index]")
$("#indexMain")[0].contentWindow.oMainFn(); //iframe的id
})
</script>
2、main.html
<body style="background:#f0f0f0">
main.html
</body>
<script>
/*子級(jí)本頁面事件*/
function oMainFn(){
alert("子頁面main.html事件調(diào)用成功");
}
/*調(diào)用父頁面事件*/
$(document).click(function(){
alert("您點(diǎn)擊的是子頁面![main]")
parent.window.oIndexFn(); //調(diào)用父級(jí)頁面事件
})
</script>
利用JQuery操作iframe父頁面、子頁面的元素和方法匯總
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。