本申請涉及數(shù)據(jù)處理領(lǐng)域,具體涉及一種數(shù)據(jù)處理方法、裝置和電子設(shè)備。
背景技術(shù):
在圖形用戶界面中,編輯控件是一種很常用的控件,用戶可以在編輯控件內(nèi)輸入并編輯文本。常用的編輯控件包括輸入框控件或組合框控件,例如,在網(wǎng)頁文件中,輸入框控件是通過<input>標(biāo)簽或<textarea>標(biāo)簽表示的,組合框控件是通過<select>標(biāo)簽表示的;在Visual Basic編程語言中,輸入框控件是一個TextBox組件,組合框控件是一個ComboBox組件。
編輯控件具有與其關(guān)聯(lián)的輔助下拉列表,在輔助下拉列表中列出編輯控件的可選項數(shù)據(jù),以供用戶選擇。編輯控件的可選項數(shù)據(jù)既可以是確定的,也可以是變化的。引起編輯控件的可選項數(shù)據(jù)產(chǎn)生變化的主要原因是:編輯控件之間存在級聯(lián)約束關(guān)系。例如,一個輸入框的可選項數(shù)據(jù)需要根據(jù)另一個輸入框的輸入內(nèi)容進行篩選。當(dāng)編輯控件之間的級聯(lián)約束關(guān)系較為復(fù)雜時,級聯(lián)約束關(guān)系構(gòu)成一棵樹形結(jié)構(gòu),其中任意一個編輯控件的可選項數(shù)據(jù)都需要依據(jù)與其具有級聯(lián)約束關(guān)系的父編輯控件和所有祖先編輯控件中的輸入內(nèi)容作為篩選條件,以獲取符合條件的可選項數(shù)據(jù)。
對于具有級聯(lián)約束關(guān)系的編輯控件,獲取可選項數(shù)據(jù)的常用方法包括:1)在加載編輯控件所在的窗口時,獲取該窗口中所有編輯控件的所有可選項數(shù)據(jù),當(dāng)用戶點擊編輯控件時,把提前獲取到的可選項數(shù)據(jù)全部列舉出來供用戶選擇;2)為窗口中的每個編輯控件分別編寫?yīng)毩⒌墨@取可選項數(shù)據(jù)的查詢程序,以獲得不同編輯控件的可選項數(shù)據(jù)。
上述第一種方法的優(yōu)點是程序簡單,其缺點是在編輯控件的可選項數(shù)據(jù)的數(shù)量較多的情況下,將導(dǎo)致加載窗口的時間比較長。上述第二種方法的優(yōu)點是加載窗口的時間不受編輯控件的可選項數(shù)據(jù)數(shù)量的影響,因而加載速度較快。然而,由于第二種方法需要為每個編輯控件單獨定制查詢程序,因此該方法將導(dǎo)致較高的開發(fā)成本。特別的,通過上述第二種方法,無法解決編輯控件之間的級聯(lián)約束關(guān)系構(gòu)成樹形結(jié)構(gòu)情況下,獲取編輯控件的可選項數(shù)據(jù)的問題。
綜上所述,當(dāng)編輯控件之間存在級聯(lián)約束關(guān)系時,現(xiàn)有技術(shù)存在需要為每個編輯控件單獨定制查詢程序,才能實現(xiàn)動態(tài)顯示編輯控件的可選項數(shù)據(jù)的問題。
技術(shù)實現(xiàn)要素:
本申請?zhí)峁┮环N數(shù)據(jù)處理方法、裝置及電子設(shè)備,以解決當(dāng)編輯控件之間存在級聯(lián)約束關(guān)系時,現(xiàn)有技術(shù)存在需要為每個編輯控件單獨定制查詢程序,才能實現(xiàn)動態(tài)顯示編輯控件的可選項數(shù)據(jù)的問題。
本身請?zhí)峁┮环N數(shù)據(jù)處理方法,用于與編輯控件關(guān)聯(lián)的輔助下拉列表,包括:
當(dāng)為編輯控件預(yù)設(shè)的事件監(jiān)聽器監(jiān)聽到預(yù)設(shè)的顯示下拉列表事件時,根據(jù)預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系,獲取當(dāng)前編輯控件的父級編輯控件和各級祖先編輯控件的控件名和控件值;
以獲取的所述父級編輯控件和各級祖先編輯控件的控件名和控件值對形成檢索條件,在預(yù)存的選項數(shù)據(jù)集中檢索,以獲取符合所述檢索條件的所述當(dāng)前編輯控件的可選項數(shù)據(jù);
將符合檢索條件的可選項數(shù)據(jù)填充到與所述當(dāng)前編輯控件關(guān)聯(lián)的輔助下拉列表中。
可選的,所述根據(jù)預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系,獲取當(dāng)前編輯控件的父級編輯控件和各級祖先編輯控件的控件名和控件值,包括:
根據(jù)預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系,判斷是否存在與所述當(dāng)前編輯控件具有級聯(lián)約束關(guān)系的父級編輯控件;
若上述判斷結(jié)果為是,則獲取所述父級編輯控件的控件名和控件值,并將所述父級編輯控件作為所述當(dāng)前編輯控件,返回執(zhí)行所述根據(jù)預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系,判斷是否存在與所述當(dāng)前編輯控件具有級聯(lián)約束關(guān)系的父級編輯控件的步驟。
可選的,所述編輯控件具有父級編輯控件屬性;所述預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系被設(shè)置在各個編輯控件的所述父級編輯控件屬性中。
可選的,所述根據(jù)預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系,判斷是否存在與所述當(dāng)前編輯控件具有級聯(lián)約束關(guān)系的父級編輯控件,包括:
讀取所述當(dāng)前編輯控件的父級編輯控件屬性的屬性值;
根據(jù)所述父級編輯控件屬性的屬性值,判斷是否存在與所述當(dāng)前編輯控件具有級聯(lián)約束關(guān)系的所述父級編輯控件。
可選的,所述父級編輯控件屬性的屬性值包括所述父級編輯控件的路徑名和控件名;所述獲取所述父級編輯控件的控件名和控件值,包括:
解析所述父級編輯控件屬性的屬性值,獲取所述父級編輯控件的路徑名和控件名;
根據(jù)所述父級編輯控件的路徑名和控件名,獲取所述父級編輯控件;
讀取所述父級編輯控件的控件值。
可選的,所述以獲取的所述父級編輯控件和各級祖先編輯控件的控件名和控件值對形成檢索條件,在預(yù)存的選項數(shù)據(jù)集中檢索,以獲取符合所述檢索條件的所述當(dāng)前編輯控件的可選項數(shù)據(jù),包括:
根據(jù)獲取的所述父級編輯控件和各級祖先編輯控件的控件名和控件值對,形成所述檢索條件;
通過預(yù)設(shè)的查詢程序,在所述預(yù)存的選項數(shù)據(jù)集中檢索,獲取符合所述檢索條件的所述當(dāng)前編輯控件的可選項數(shù)據(jù)。
可選的,所述檢索條件是由所述父級編輯控件和各級祖先編輯控件的控件名和控件值對的等價關(guān)系構(gòu)成的邏輯與表達式。
可選的,所述預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系,采用如下方式構(gòu)建:
在文檔對象模型中設(shè)置各個編輯控件之間的級聯(lián)約束關(guān)系。
可選的,所述編輯控件具有父級編輯控件屬性;所述預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系被設(shè)置在各個編輯控件的所述父級編輯控件屬性中;所述在文檔對象模型中設(shè)置各個編輯控件之間的級聯(lián)約束關(guān)系包括:
在文檔對象模型中編寫各個編輯控件;
通過所述父級編輯控件屬性,配置各個編輯控件之間的級聯(lián)約束關(guān)系。
可選的,所述當(dāng)前編輯控件采用輸入框控件;所述將符合檢索條件的可選項數(shù)據(jù)填充到與所述當(dāng)前編輯控件關(guān)聯(lián)的輔助下拉列表中,包括:
為各個可選項數(shù)據(jù)設(shè)置各自對應(yīng)的點擊事件;所述點擊事件被觸發(fā)時,將與該點擊事件對應(yīng)的可選項數(shù)據(jù)作為所述輸入框控件的輸入值;
將設(shè)置點擊事件后的各個可選項數(shù)據(jù),填充到與所述當(dāng)前編輯控件關(guān)聯(lián)的輔助下拉列表中。
可選的,在所述當(dāng)為編輯控件預(yù)設(shè)的事件監(jiān)聽器監(jiān)聽到預(yù)設(shè)的顯示下拉列表事件時,根據(jù)預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系,獲取當(dāng)前編輯控件的父級編輯控件和各級祖先編輯控件的控件名和控件值之前,還包括:
監(jiān)聽所述編輯控件的所述預(yù)設(shè)的顯示下拉列表事件。
相應(yīng)的,本申請還提供一種數(shù)據(jù)處理裝置,用于與編輯控件關(guān)聯(lián)的輔助下拉列表,包括:
獲取單元,用于當(dāng)為編輯控件預(yù)設(shè)的事件監(jiān)聽器監(jiān)聽到預(yù)設(shè)的顯示下拉列表事件時,根據(jù)預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系,獲取當(dāng)前編輯控件的父級編輯控件和各級祖先編輯控件的控件名和控件值;
檢索單元,用于以獲取的所述父級編輯控件和各級祖先編輯控件的控件名和控件值對形成檢索條件,在預(yù)存的選項數(shù)據(jù)集中檢索,以獲取符合所述檢索條件的所述當(dāng)前編輯控件的可選項數(shù)據(jù);
填充單元,用于將符合檢索條件的可選項數(shù)據(jù)填充到與所述當(dāng)前編輯控件關(guān)聯(lián)的輔助下拉列表中。
可選的,所述獲取單元包括:
判斷子單元,用于根據(jù)預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系,判斷是否存在與所述當(dāng)前編輯控件具有級聯(lián)約束關(guān)系的父級編輯控件;
獲取子單元,用于若上述判斷結(jié)果為是,則獲取所述父級編輯控件的控件名和控件值,并將所述父級編輯控件作為所述當(dāng)前編輯控件,返回執(zhí)行所述根據(jù)預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系,判斷是否存在與所述當(dāng)前編輯控件具有級聯(lián)約束關(guān)系的父級編輯控件的步驟。
可選的,所述編輯控件具有父級編輯控件屬性;所述預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系被設(shè)置在各個編輯控件的所述父級編輯控件屬性中。
可選的,所述判斷子單元包括:
讀取子單元,用于讀取所述當(dāng)前編輯控件的父級編輯控件屬性的屬性值;
第一判斷子單元,用于根據(jù)所述父級編輯控件屬性的屬性值,判斷是否存在與所述當(dāng)前編輯控件具有級聯(lián)約束關(guān)系的所述父級編輯控件。
可選的,所述父級編輯控件屬性的屬性值包括所述父級編輯控件的路徑名和控件名;所述獲取子單元包括:
解析子單元,用于解析所述父級編輯控件屬性的屬性值,獲取所述父級編輯控件的路徑名和控件名;
第一獲取子單元,用于根據(jù)所述父級編輯控件的路徑名和控件名,獲取所述父級編輯控件;
讀取子單元,用于讀取所述父級編輯控件的控件值。
可選的,所述檢索單元包括:
生成子單元,用于根據(jù)獲取的所述父級編輯控件和各級祖先編輯控件的控件名和控件值對,形成所述檢索條件;
第一檢索子單元,用于通過預(yù)設(shè)的查詢程序,在所述預(yù)存的選項數(shù)據(jù)集中檢索,獲取符合所述檢索條件的所述當(dāng)前編輯控件的可選項數(shù)據(jù)。
可選的,還包括:
構(gòu)建關(guān)系單元,用于構(gòu)建所述預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系;所述構(gòu)建所述預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系,采用如下方式:
在文檔對象模型中設(shè)置各個編輯控件之間的級聯(lián)約束關(guān)系。
可選的,所述編輯控件具有父級編輯控件屬性;所述預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系被設(shè)置在各個編輯控件的所述父級編輯控件屬性中;所述構(gòu)建關(guān)系單元包括:
編寫子單元,用于在文檔對象模型中編寫各個編輯控件;
配置子單元,用于通過所述父級編輯控件屬性,配置各個編輯控件之間的級聯(lián)約束關(guān)系。
可選的,所述填充單元包括:
設(shè)置子單元,用于為各個可選項數(shù)據(jù)設(shè)置各自對應(yīng)的點擊事件;所述點擊事件被觸發(fā)時,將與該點擊事件對應(yīng)的可選項數(shù)據(jù)作為所述輸入框控件的輸入值;
填充子單元,用于將設(shè)置點擊事件后的各個可選項數(shù)據(jù),填充到與所述當(dāng)前編輯控件關(guān)聯(lián)的輔助下拉列表中。
可選的,還包括:
監(jiān)聽單元,用于監(jiān)聽所述編輯控件的所述預(yù)設(shè)的顯示下拉列表事件。
相應(yīng)的,本申請還提供一種電子設(shè)備,包括:
顯示器;
處理器;以及
存儲器,用于存儲數(shù)據(jù)處理裝置,所述數(shù)據(jù)處理裝置被所述處理器執(zhí)行時,包括如下步驟:當(dāng)為編輯控件預(yù)設(shè)的事件監(jiān)聽器監(jiān)聽到預(yù)設(shè)的顯示下拉列表事件時,根據(jù)預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系,獲取當(dāng)前編輯控件的父級編輯控件和各級祖先編輯控件的控件名和控件值;以獲取的所述父級編輯控件和各級祖先編輯控件的控件名和控件值對形成檢索條件,在預(yù)存的選項數(shù)據(jù)集中檢索,以獲取符合所述檢索條件的所述當(dāng)前編輯控件的可選項數(shù)據(jù);將符合檢索條件的可選項數(shù)據(jù)填充到與所述當(dāng)前編輯控件關(guān)聯(lián)的輔助下拉列表中。
與現(xiàn)有技術(shù)相比,本申請具有以下優(yōu)點:
本申請實施例提供的數(shù)據(jù)處理方法,當(dāng)為編輯控件預(yù)設(shè)的事件監(jiān)聽器監(jiān)聽到預(yù)設(shè)的顯示下拉列表事件時,通過根據(jù)預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系,獲取當(dāng)前編輯控件的父級編輯控件和各級祖先編輯控件的控件名和控件值;并以獲取的所述父級編輯控件和各級祖先編輯控件的控件名和控件值對形成檢索條件,在預(yù)存的選項數(shù)據(jù)集中檢索,以獲取符合所述檢索條件的所述當(dāng)前編輯控件的可選項數(shù)據(jù);將符合檢索條件的可選項數(shù)據(jù)填充到與所述當(dāng)前編輯控件關(guān)聯(lián)的輔助下拉列表中,使得具有級聯(lián)約束關(guān)系的編輯控件需要聯(lián)動顯示可選項數(shù)據(jù)時,能夠通過一個統(tǒng)一的查詢程序獲取編輯控件的可選項數(shù)據(jù),避免為每個編輯控件分別編寫查詢程序,減少了實現(xiàn)編輯控件聯(lián)動顯示的程序代碼,從而達到減少人工工作量的效果。
附圖說明
圖1是本申請的數(shù)據(jù)處理方法實施例的流程圖;
圖2是本申請的數(shù)據(jù)處理方法實施例的DOM結(jié)構(gòu)示意圖;
圖3是本申請的數(shù)據(jù)處理方法實施例的具有級聯(lián)約束關(guān)系的編輯控件的示意圖;
圖4是本申請的數(shù)據(jù)處理方法實施例的設(shè)置級聯(lián)約束關(guān)系的程序代碼示意圖;
圖5是本申請的數(shù)據(jù)處理方法實施例步驟S101的具體流程圖;
圖6是本申請的數(shù)據(jù)處理方法實施例步驟S1013的具體流程圖;
圖7是本申請的數(shù)據(jù)處理方法實施例構(gòu)造查詢程序參數(shù)的具體流程圖;
圖8是本申請的數(shù)據(jù)處理裝置實施例的示意圖;
圖9是本申請的數(shù)據(jù)處理裝置實施例獲取單元101的具體示意圖;
圖10是本申請的數(shù)據(jù)處理裝置實施例的具體示意圖;
圖11是本申請的電子設(shè)備的具體示意圖。
具體實施方式
在下面的描述中闡述了很多具體細節(jié)以便于充分理解本申請。但是本申請能夠以很多不同于在此描述的其它方式來實施,本領(lǐng)域技術(shù)人員可以在不違背本申請內(nèi)涵的情況下做類似推廣,因此本申請不受下面公開的具體實施的限制。
在本申請中,提供了一種數(shù)據(jù)處理方法、裝置及電子設(shè)備。在下面的實施例中逐一進行詳細說明。
本申請實施例提供的數(shù)據(jù)處理方法,其基本思想是:對于要顯示下拉列表的編輯控件,根據(jù)與其具有級聯(lián)約束關(guān)系的父級編輯控件和各級祖先編輯控件的控件名和控件值形成檢索條件,通過一個統(tǒng)一的查詢接口,檢索獲取要顯示下拉列表的編輯控件的可選項數(shù)據(jù)。由于本申請?zhí)峁┑姆椒ㄊ峭ㄟ^一個統(tǒng)一的查詢接口檢索獲取編輯控件的可選項數(shù)據(jù),無須為每個編輯控件分別編寫查詢接口,因此能夠減少實現(xiàn)編輯控件聯(lián)動顯示的程序代碼。
請參考圖1,其為本申請的數(shù)據(jù)處理方法實施例的流程圖。所述方法包括如下步驟:
步驟S101:當(dāng)為編輯控件預(yù)設(shè)的事件監(jiān)聽器監(jiān)聽到預(yù)設(shè)的顯示下拉列表事件時,根據(jù)預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系,獲取當(dāng)前編輯控件的父級編輯控件和各級祖先編輯控件的控件名和控件值。
本申請實施例所述的編輯控件,是指一種內(nèi)容可編輯的圖形用戶界面元素。編輯控件是一種很常用的控件,可以在編輯控件內(nèi)輸入并編輯文本。具體的,編輯控件包括輸入框控件或組合框控件,例如,在網(wǎng)頁文件中,輸入框控件是通過<input>標(biāo)簽或<textarea>標(biāo)簽表示的,組合框控件是通過<select>標(biāo)簽表示的;在Visual Basic編程語言中,輸入框控件是一個TextBox組件,組合框控件 是一個ComboBox組件。
在實際應(yīng)用中,當(dāng)為編輯控件預(yù)設(shè)的事件監(jiān)聽器監(jiān)聽到預(yù)設(shè)的顯示下拉列表事件時,啟動執(zhí)行本申請實施例提供的數(shù)據(jù)處理方法,為當(dāng)前編輯控件獲取可選項數(shù)據(jù),并將其顯示在下拉列表中。因此,要實施本申請?zhí)峁┑姆椒ǎ紫刃枰獮榇翱谥忻恳粋€具有級聯(lián)約束關(guān)系的編輯控件預(yù)先設(shè)置各自的事件監(jiān)聽器。
本申請實施例所述的事件監(jiān)聽器,用于監(jiān)聽與其關(guān)聯(lián)的編輯控件的顯示下拉列表事件。本申請實施例所述的顯示下拉列表事件,是通過對編輯控件實施的預(yù)設(shè)動作觸發(fā)的,例如,對編輯控件的點擊操作或在輸入框中輸入數(shù)據(jù)的操作均將觸發(fā)顯示下拉列表事件。
當(dāng)為編輯控件預(yù)設(shè)的事件監(jiān)聽器監(jiān)聽到預(yù)設(shè)的顯示下拉列表事件時,執(zhí)行本申請實施例提供的方法。本申請實施例提供的方法,首先根據(jù)預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系,獲取當(dāng)前編輯控件的父級編輯控件和各級祖先編輯控件的控件名和控件值。
本申請所述的預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系,定義了一個窗口中各個編輯控件之間的級聯(lián)約束關(guān)系,例如:2號編輯控件的可選項數(shù)據(jù)取決于1號編輯控件的輸入值等。在復(fù)雜的情況下,預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系將形成一個樹形結(jié)構(gòu),該樹形結(jié)構(gòu)中的每個編輯控件通過一個統(tǒng)一的查詢程序,獲取各個編輯控件的可選項數(shù)據(jù),即:一個預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系只對應(yīng)一個查詢程序。通過預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系,能夠獲取當(dāng)前編輯控件的父級編輯控件和各級祖先編輯控件的控件名和控件值。
在本實施例中,編輯控件位于網(wǎng)頁文件中。為了能夠方便的獲取網(wǎng)頁文件中編輯控件的父級編輯控件和各級祖先編輯控件,需要在文檔對象模型中設(shè)置各個編輯控件之間的級聯(lián)約束關(guān)系。
文檔對象模型(Document Object Model,簡稱DOM),是W3C組織推薦的處理可擴展標(biāo)記語言的標(biāo)準(zhǔn)編程接口。它是一種與平臺和語言無關(guān)的應(yīng)用程序接口(API),它可以動態(tài)地訪問程序和腳本,更新其內(nèi)容、結(jié)構(gòu)和www文檔的風(fēng)格(目前,HTMl和XML文檔是通過說明部分定義的)。文檔可以進一步被處理,處理的結(jié)果可以加入到當(dāng)前的頁面。DOM是一種基于樹的API文檔,它要求在處理過程中整個文檔都表示在存儲器中。
DOM分為HTML DOM和XML DOM兩種。它們分別定義了訪問和操作HTML/XML文檔的標(biāo)準(zhǔn)方法,并將對應(yīng)的文檔呈現(xiàn)為帶有元素、屬性和文本的樹結(jié)構(gòu)(節(jié)點樹)。文檔對象模型具有如下特點:
1)DOM樹定義了HTML/XML文檔的邏輯結(jié)構(gòu),給出了一種應(yīng)用程序訪問和處理XML文檔的方法。
2)在DOM樹中,有一個根節(jié)點,所有其他的節(jié)點都是根節(jié)點的后代。
3)在應(yīng)用過程中,基于DOM的HTML/XML分析器將一個HTML/XML文檔轉(zhuǎn)換成一棵DOM樹,應(yīng)用程序通過對DOM樹的操作,來實現(xiàn)對HTML/XML文檔數(shù)據(jù)的操作。
請參考圖2,其為本申請的數(shù)據(jù)處理方法實施例的DOM結(jié)構(gòu)示意圖。在HTML DOM中,所有事物都是節(jié)點。DOM是被視為節(jié)點樹的HTML。根據(jù)W3C的HTML DOM標(biāo)準(zhǔn),HTML文檔中的所有內(nèi)容都是節(jié)點:整個文檔是一個文檔節(jié)點;每個HTML元素是元素節(jié)點;HTML元素內(nèi)的文本是文本節(jié)點;每個HTML屬性是屬性節(jié)點;注釋是注釋節(jié)點。
請參考圖3,其為本申請的數(shù)據(jù)處理方法實施例的具有級聯(lián)約束關(guān)系的編輯控件的示意圖。其中,1號輸入框的內(nèi)容是在頁面加載時,直接調(diào)用查詢程序獲得的;2號輸入框的內(nèi)容是以1號輸入框的內(nèi)容為檢索條件,調(diào)用上述查詢程序獲得的;3號輸入框的內(nèi)容是以1號和2號輸入框的內(nèi)容為檢索條件,調(diào)用上述查詢程序獲得的;以此類推,可以看到5至9號輸入框不止一個,其級聯(lián)關(guān)系是,所有的5號輸入框均以1至4號輸入框的內(nèi)容為檢索條件,調(diào)用上述查詢程序獲得的;位于第一個5號輸入框后面的6號輸入框是以1至4號輸入框的內(nèi)容和第一個5號輸入框的內(nèi)容為檢索條件,調(diào)用上述查詢程序獲得的;同理的,8號輸入框是以1至4號輸入框和8號上面的5至7號輸入框的內(nèi)容為檢索條件,調(diào)用上述查詢程序獲得的。
對于圖3所示的編輯控件之間的級聯(lián)約束關(guān)系,請參考圖4,其為本申請的數(shù)據(jù)處理方法實施例的設(shè)置級聯(lián)約束關(guān)系的程序代碼示意圖。其中,代碼<divclass=”container”>中的container類屬性所標(biāo)識的div元素節(jié)點為具有級聯(lián)約束關(guān)系的各個編輯控件同屬的頂級元素節(jié)點。
上段代碼中的input-element類屬性所標(biāo)識的div元素節(jié)點是container類屬性所標(biāo)識的div元素節(jié)點的子節(jié)點,input-element類屬性所標(biāo)識的div元素節(jié)點中的編輯控件為輸入框控件,控件名稱為interfaceTypeDescription,控件的data-cascade-parent-exp屬性是一個自定義屬性,該屬性標(biāo)識該控件的父級編輯控件的路徑名和控件名,data-suggest-url屬性也是一個自定義屬性,該屬性標(biāo)識獲取可選項數(shù)據(jù)的查詢程序名稱。
上段代碼中的data-cascade-parent-exp屬性值為.panelinput[name=’interfaceTypeDescription’],表示輸入框interfaceDescription的可選項數(shù)據(jù)依賴于輸入框interfaceTypeDescription的輸入值。
上段代碼中的data-cascade-parent-exp屬性值為.container input[name=’ methodDescription’],表示container類屬性所標(biāo)識的div元素節(jié)點->panel類屬性所標(biāo)識的div元素節(jié)點->panel-heading類屬性所標(biāo)識的div元素節(jié)點下的輸入框interfaceTypeDescription的可選項數(shù)據(jù)依賴于當(dāng)前div元素節(jié)點的最近上一級contain類屬性所標(biāo)識的div元素節(jié)點下的輸入框interfaceTypeDescription的輸入值。
綜上所述,通過在文檔對象模型中設(shè)置各個編輯控件之間的級聯(lián)約束關(guān)系,能夠方便的獲取編輯控件的父級編輯控件和各級祖先編輯控件。具體的,在文檔對象模型中設(shè)置各個編輯控件之間的級聯(lián)約束關(guān)系,包括如下步驟:1)在文檔對象模型中編寫各個編輯控件;2)通過預(yù)設(shè)的級聯(lián)約束關(guān)系屬性,配置各個編輯控件之間的級聯(lián)約束關(guān)系。
1)在文檔對象模型中編寫各個編輯控件。
通過在文檔對象模型中編寫各個編輯控件,每個編輯控件可以由節(jié)點路徑名和控件名標(biāo)識,例如,圖4中服務(wù)類型對應(yīng)的輸入框interfaceTypeDescription的節(jié)點路徑名是container,功能類型對應(yīng)的輸入框interfaceTypeDescription的節(jié)點路徑名是container.panel.panel-heading,可見不同節(jié)點路徑下的控件名可以相同,通過控件名的節(jié)點路徑名可以區(qū)分相同控件名標(biāo)識的不同控件。
在網(wǎng)頁文件中,通過<div>標(biāo)簽可以把文檔分割為獨立的、不同的部分。它可以用作嚴(yán)格的組織工具,并且不使用任何格式與其關(guān)聯(lián)。特別是使用id或class來標(biāo)記<div>,那么該標(biāo)簽的作用會變得更加有效。在本實施例中,通過div元素的class屬性來標(biāo)識編輯控件的節(jié)點路徑名。
圖4的網(wǎng)頁標(biāo)簽中出現(xiàn)的class屬性一般是用來調(diào)用CSS中的預(yù)配制屬性的,命名好的CSS又叫css樣式選擇器。在CSS樣式中以“.”英文半角小寫句號來命名預(yù)配制屬性,而在html頁面里則以class屬性來選擇調(diào)用預(yù)配制屬性,例如:.container{屬性:屬性值;}樣式選擇器在html調(diào)用為<div class="container">。通過class屬性可以像調(diào)用函數(shù)一樣不用在一個網(wǎng)頁頁面里重復(fù)的配置一個“類”屬性,而只需要寫上一個class類選擇,就可以在同一個頁面里任何位置調(diào)用選擇具有相同的Class類。
2)通過所述父級編輯控件屬性,配置各個編輯控件之間的級聯(lián)約束關(guān)系。
本申請實施例所述的父級編輯控件屬性是一個自定義的屬性,具有級聯(lián)約束關(guān)系的每一個編輯控件均具有父級編輯控件屬性。通過為每一個編輯控件設(shè) 置的父級編輯控件屬性,形成了本申請實施例所述的預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系。因此,預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系被設(shè)置在各個編輯控件的父級編輯控件屬性中。
例如,圖4中input標(biāo)簽保留了原有name屬性,并增加了父級編輯控件屬性:data-cascade-parent-exp,data-cascade-parent-exp的屬性值所指向的是聯(lián)動引起當(dāng)前編輯控件可選項數(shù)據(jù)變化的父級編輯控件,data-cascade-parent-exp用父級編輯控件的name屬性來賦值,并且data-cascade-parent-exp的值還包括父級編輯控件的節(jié)點路徑名。
需要說明的是,由于本實施例的編輯控件位于網(wǎng)頁文件中,因此通過采用JavaScript和CSS語言編寫網(wǎng)頁文件,在文檔對象模型中設(shè)置各個編輯控件之間的級聯(lián)約束關(guān)系。在實際應(yīng)用中,也不僅僅局限于在文檔對象模型中設(shè)置各個編輯控件之間的級聯(lián)約束關(guān)系,還可以是其它編輯控件的組織結(jié)構(gòu)等,例如,當(dāng)編輯控件并非位于網(wǎng)頁文件,而位于普通的窗口時,可以采用與該窗口相關(guān)的編輯控件的組織結(jié)構(gòu),以方便獲取編輯控件的父級編輯控件和各級祖先編輯控件。上述這些不同的方式,都只是具體實施方式的變更,都不偏離本申請的核心,因此都在本申請的保護范圍之內(nèi)。
在本實施例中,當(dāng)在文檔對象模型中設(shè)置好各個編輯控件之間的級聯(lián)約束關(guān)系后,就可以根據(jù)預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系,獲取當(dāng)前編輯控件的父級編輯控件和各級祖先編輯控件的控件名和控件值。請參考圖5,其為本申請的數(shù)據(jù)處理方法實施例步驟S101的具體流程圖。具體的,所述根據(jù)預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系,獲取當(dāng)前編輯控件的父級編輯控件和各級祖先編輯控件的控件名和控件值,包括:
步驟S1011:根據(jù)預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系,判斷是否存在與所述當(dāng)前編輯控件具有級聯(lián)約束關(guān)系的父級編輯控件。
本申請實施例提供的數(shù)據(jù)處理方法,是根據(jù)當(dāng)前編輯控件的父級編輯控件屬性的屬性值,在對DOM結(jié)構(gòu)逐級向上遞歸獲取每一級編輯控件的父級編輯控件的過程中,逐步獲取到當(dāng)前編輯控件的父級編輯控件和各級祖先編輯控件的控件名和控件值的。在遞歸處理各級編輯控件時,根據(jù)當(dāng)前編輯控件的父級編輯控件屬性,獲取其父級編輯控件的控件名和控件值。
具體的,所述根據(jù)預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系,判斷是否存在與所述當(dāng) 前編輯控件具有級聯(lián)約束關(guān)系的父級編輯控件,包括:1)讀取所述當(dāng)前編輯控件的父級編輯控件屬性的屬性值;2)根據(jù)所述父級編輯控件屬性的屬性值,判斷是否存在與所述當(dāng)前編輯控件具有級聯(lián)約束關(guān)系的所述父級編輯控件。
1)讀取所述當(dāng)前編輯控件的父級編輯控件屬性的屬性值。
對于遞歸過程中正在處理的編輯控件,通過DOM API讀取該編輯控件的父級編輯控件屬性的屬性值。
2)根據(jù)所述父級編輯控件屬性的屬性值,判斷是否存在與所述當(dāng)前編輯控件具有級聯(lián)約束關(guān)系的所述父級編輯控件。
在獲取到當(dāng)前編輯控件的父級編輯控件屬性的屬性值后,根據(jù)獲取到的屬性值,判斷是否存在與當(dāng)前編輯控件具有級聯(lián)約束關(guān)系的父級編輯控件。在本實施例中,如果父級編輯控件屬性的屬性值為空,則表示當(dāng)前編輯控件不存在具有級聯(lián)約束關(guān)系的父級編輯控件,如果父級編輯控件屬性的屬性值為非空,則表示當(dāng)前編輯控件存在具有級聯(lián)約束關(guān)系的父級編輯控件。
步驟S1013:若上述判斷結(jié)果為是,則獲取所述父級編輯控件的控件名和控件值,并將所述父級編輯控件作為所述當(dāng)前編輯控件,返回執(zhí)行所述根據(jù)預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系,判斷是否存在與所述當(dāng)前編輯控件具有級聯(lián)約束關(guān)系的父級編輯控件的步驟。
通過步驟S1011的判斷,如果存在與當(dāng)前編輯控件具有級聯(lián)約束關(guān)系的父級編輯控件,則根據(jù)父級編輯控件屬性的屬性值,獲取父級編輯控件的控件名,并進一步地根據(jù)父級編輯控件的控件名獲取其控件值。在獲取到與當(dāng)前編輯控件具有級聯(lián)約束關(guān)系的父級編輯控件的控件名和控件值后,沿DOM樹向上遞歸處理當(dāng)前編輯控件的父級編輯控件,將其作為當(dāng)前編輯控件,重復(fù)上述步驟S1011,直至處理的當(dāng)前編輯控件無父級編輯控件為止。
請參考圖6,其為本申請的數(shù)據(jù)處理方法實施例步驟S1013的具體流程圖。具體的,所述獲取所述父級編輯控件的控件名和控件值,包括:
步驟S10131:解析所述父級編輯控件屬性的屬性值,獲取所述父級編輯控件的路徑名和控件名。
本申請實施例所述的父級編輯控件屬性的屬性值,包括所述父級編輯控件的路徑名和控件名。例如,圖4中服務(wù)類型對應(yīng)的輸入框interfaceTypeDescription的路徑名是container,功能類型對應(yīng)的輸入框interfaceTypeDescription的路徑名 是container.panel.panel-heading。
在本實施例中,采用空格分隔父級編輯控件的路徑名和控件名,因而通過獲取子字符串的方法即可分別獲取到父級編輯控件的路徑名和控件名。在實際應(yīng)用中,也不僅僅局限于采用空格的方式分離符級編輯控件的路徑名和控件名,還可以是其它預(yù)設(shè)的分割字符等,上述這些不同的方式,都只是具體實施方式的變更,都不偏離本申請的核心,因此都在本申請的保護范圍之內(nèi)。
步驟S10133:根據(jù)所述父級編輯控件的路徑名和控件名,獲取所述父級編輯控件。
在獲取父級編輯控件的路徑名和控件名后,進一步地通過DOM API能夠獲取位于該路徑下的該控件名標(biāo)識的父級編輯控件。
步驟S10135:讀取所述父級編輯控件的控件值。
當(dāng)獲取到與當(dāng)前編輯控件具有級聯(lián)約束關(guān)系的父級編輯控件后,通過讀取該編輯控件的值屬性,即可獲得父級編輯控件的控件值。
通過步驟S1011根據(jù)預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系,判斷是否存在與當(dāng)前編輯控件具有級聯(lián)約束關(guān)系的父級編輯控件,若上述判斷結(jié)果為否,則表示獲取到當(dāng)前編輯控件的父級編輯控件和各級祖先編輯控件的控件名和控件值。
步驟S103:以獲取的所述父級編輯控件和各級祖先編輯控件的控件名和控件值對形成檢索條件,在預(yù)存的選項數(shù)據(jù)集中檢索,以獲取符合所述檢索條件的所述當(dāng)前編輯控件的可選項數(shù)據(jù)。
通過步驟S101獲取到當(dāng)前編輯控件的父級編輯控件和各級祖先編輯控件的控件名和控件值,以獲取到的每一對編輯控件的控件名和控件值的組合形成檢索條件,通過統(tǒng)一的查詢程序在預(yù)存的選項數(shù)據(jù)集中檢索,以獲取符合所述檢索條件的所述當(dāng)前編輯控件的可選項數(shù)據(jù)。
具體的,所述以獲取的所述父級編輯控件和各級祖先編輯控件的控件名和控件值對形成檢索條件,在預(yù)存的選項數(shù)據(jù)集中檢索,以獲取符合所述檢索條件的所述當(dāng)前編輯控件的可選項數(shù)據(jù),包括:1)根據(jù)獲取的所述父級編輯控件和各級祖先編輯控件的控件名和控件值對,形成所述檢索條件;2)通過預(yù)設(shè)的查詢程序,在所述預(yù)存的選項數(shù)據(jù)集中檢索,獲取符合所述檢索條件的所述當(dāng)前編輯控件的可選項數(shù)據(jù)。
1)根據(jù)獲取的所述父級編輯控件和各級祖先編輯控件的控件名和控件值 對,形成所述檢索條件。
本申請實施例所述的檢索條件是由當(dāng)前編輯控件的父級編輯控件和各級祖先編輯控件的控件名和控件值對的等價關(guān)系構(gòu)成的邏輯與表達式。例如,圖3中3號輸入框的內(nèi)容是以1號和2號輸入框的內(nèi)容為檢索條件,其中1號輸入框的內(nèi)容為XXX,2號輸入框的內(nèi)容為YYY,則檢索條件為:參數(shù)1=“XXX”and參數(shù)2=“YYY”。
2)通過預(yù)設(shè)的查詢程序,在所述預(yù)存的選項數(shù)據(jù)集中檢索,獲取符合所述檢索條件的所述當(dāng)前編輯控件的可選項數(shù)據(jù)。
在本實施例中,預(yù)設(shè)的查詢程序是通過編輯控件的自定義屬性“獲取可選項數(shù)據(jù)的查詢程序名稱屬性”(即data-suggest-url)標(biāo)識的。Web應(yīng)用提供統(tǒng)一的查詢程序,在調(diào)用該查詢程序獲取當(dāng)前編輯控件的可選項數(shù)據(jù)時,需要向該查詢程序傳遞一定的參數(shù),這些參數(shù)就是與當(dāng)前編輯控件相關(guān)的所有父級編輯控件的控件名和控件值,查詢程序根據(jù)接收的查詢參數(shù)形成檢索條件,并依據(jù)檢索條件執(zhí)行查詢操作,從而獲得當(dāng)前編輯控件的可選項數(shù)據(jù)。
請參考圖7,其為本申請的數(shù)據(jù)處理方法實施例構(gòu)造查詢程序參數(shù)的具體流程圖。具體的,當(dāng)用戶點擊某個編輯控件或者在某個編輯控件中輸入字符時,觸發(fā)與該編輯控件綁定的顯示下拉列表事件,該事件的事件處理器構(gòu)造查詢程序參數(shù)的步驟如下所述:首先讀取當(dāng)前編輯控件的“名稱屬性”,并將該名稱屬性作為查詢程序的一個參數(shù),該參數(shù)表示要獲取可選項數(shù)據(jù)的編輯控件名稱;然后,讀取當(dāng)前編輯控件的“父級編輯控件屬性”,并判斷父級編輯控件屬性值是否為空;如果判斷結(jié)果為否,則以空格為分隔符拆分“父級編輯控件屬性”,用拆分后的第一部分作為該輸入框的最近的一個DOM結(jié)構(gòu)中的父節(jié)點選擇器,根據(jù)父節(jié)點選擇器找到DOM結(jié)構(gòu)中最近的一個符合選擇器條件的父節(jié)點,用拆分后的第二部分作為1中父節(jié)點的一個子節(jié)點的選擇器,根據(jù)DOM結(jié)構(gòu)中的父節(jié)點和子節(jié)點選擇器找到級聯(lián)關(guān)系中的父輸入框/下拉框,讀取父輸入框/下拉框的“名稱屬性”和“值屬性”的值,并將【名稱屬性的值】=【值屬性的值】作為查詢程序的一個參數(shù);如果判斷結(jié)果為是,則讀取當(dāng)前編輯控件的“獲取可選項數(shù)據(jù)的查詢程序名稱屬性”,向該屬性值添加之前獲取的所有參數(shù)。
通過圖7的各個具體步驟構(gòu)造出查詢程序參數(shù)后,就可以請求依據(jù)參數(shù)執(zhí)行后端提供的查詢程序,查詢程序在預(yù)存的選項數(shù)據(jù)集中檢索,獲取符合條件 的當(dāng)前編輯控件的可選項數(shù)據(jù),最后把后端的查詢程序返回的數(shù)據(jù)展示到該編輯控件的下方,供用戶選擇。在用戶選擇后,將用戶選擇的值填到編輯控件中。
本申請實施例所述的預(yù)存的選項數(shù)據(jù)集,是以JSON數(shù)據(jù)交換格式存儲的,編輯控件的“獲取可選項數(shù)據(jù)的查詢程序名稱屬性”(即data-suggest-url)的屬性值為“/scc/serviceMetaInfoRpc/suggest.json”,服務(wù)器端返回JSON格式的編輯控件的可選項數(shù)據(jù),例如,[["yes","類目命中"],["no","類目不命中"]]。在實際應(yīng)用中,統(tǒng)一的查詢程序也不僅僅局限于以JSON數(shù)據(jù)交換格式存儲的選項數(shù)據(jù)集,還可以是其它程序接口等,例如,采用java、c#、php、ruby等編程語言編寫的查詢程序,上述這些不同的方式,都只是具體實施方式的變更,都不偏離本申請的核心,因此都在本申請的保護范圍之內(nèi)。
步驟S105:將符合檢索條件的可選項數(shù)據(jù)填充到與所述當(dāng)前編輯控件關(guān)聯(lián)的輔助下拉列表中。
通過步驟S103獲取到編輯控件的可選項數(shù)據(jù),通常可選項數(shù)據(jù)是一個鍵值對的列表。需要將這些可選項數(shù)據(jù)顯示在與當(dāng)前編輯控件關(guān)聯(lián)的輔助下拉列表中,下拉列表填充了一個或多個建議完成字符串。具體的,由于本實施例的編輯控件位于網(wǎng)頁文件中,因此可以通過JavaScript程序?qū)⒉襟ES103獲取到的符合檢索條件的可選項數(shù)據(jù)展現(xiàn)在編輯控件的下面,提供給用戶選擇。
在實際應(yīng)用中,如果編輯控件采用輸入框控件,則將將符合檢索條件的可選項數(shù)據(jù)填充到與所述當(dāng)前編輯控件關(guān)聯(lián)的輔助下拉列表中,包括:1)為各個可選項數(shù)據(jù)設(shè)置各自對應(yīng)的點擊事件;所述點擊事件被觸發(fā)時,將與該點擊事件對應(yīng)的選項值作為所述輸入框控件的輸入值;2)將設(shè)置點擊事件后的各個可選項數(shù)據(jù),填充到與所述當(dāng)前編輯控件關(guān)聯(lián)的輔助下拉列表中。
1)為各個可選項數(shù)據(jù)設(shè)置各自對應(yīng)的點擊事件;所述點擊事件被觸發(fā)時,將與該點擊事件對應(yīng)的選項值作為所述輸入框控件的輸入值。
對于組合框樣式的編輯控件而言,將獲取到的可選項數(shù)據(jù)填充到輔助下拉列表后,如果選擇其中一個選項,則該選項值自動被填充到輸入框中。而對于傳統(tǒng)的輸入框控件,如果選擇其中一個選項,則該選項值不會自動被填充到輸入框中,因此需要額外的做一些設(shè)置,使得選項值能夠自動被填充到輸入框中。為此,可以為各個可選項數(shù)據(jù)設(shè)置各自對應(yīng)的點擊事件。當(dāng)點擊事件被觸發(fā)時,將與該點擊事件對應(yīng)的選項值作為文本輸入框的值。
2)將設(shè)置點擊事件后的各個可選項數(shù)據(jù),填充到與所述當(dāng)前編輯控件關(guān)聯(lián)的輔助下拉列表中。
對于與文本輸入框關(guān)聯(lián)的輔助下拉列表,在為每個選項設(shè)置點擊事件后,將設(shè)置點擊事件后的各個可選項數(shù)據(jù),填充到與編輯控件關(guān)聯(lián)的輔助下拉列表中。在本實施例中,通過使用JavaScript和JQuery技術(shù),把查詢程序返回的可選項數(shù)據(jù)(通常該數(shù)據(jù)為一個數(shù)組)以“<li>數(shù)組的某個元素</li>”方式追加到當(dāng)前輸入框DOM節(jié)點的后面,同時給每個<li>添加一個點擊事件,使其在被點擊時,將<li>中的元素內(nèi)容填到輸入框的值屬性中。
在上述的實施例中,提供了一種數(shù)據(jù)處理方法,與之相對應(yīng)的,本申請還提供一種數(shù)據(jù)處理裝置。該裝置是與上述方法的實施例相對應(yīng)。
請參看圖8,其為本申請的數(shù)據(jù)處理裝置實施例的示意圖。由于裝置實施例基本相似于方法實施例,所以描述得比較簡單,相關(guān)之處參見方法實施例的部分說明即可。下述描述的裝置實施例僅僅是示意性的。
本實施例的一種數(shù)據(jù)處理裝置,用于與編輯控件關(guān)聯(lián)的輔助下拉列表,包括:
獲取單元101,用于當(dāng)為編輯控件預(yù)設(shè)的事件監(jiān)聽器監(jiān)聽到預(yù)設(shè)的顯示下拉列表事件時,根據(jù)預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系,獲取當(dāng)前編輯控件的父級編輯控件和各級祖先編輯控件的控件名和控件值;
檢索單元103,用于以獲取的所述父級編輯控件和各級祖先編輯控件的控件名和控件值對形成檢索條件,在預(yù)存的選項數(shù)據(jù)集中檢索,以獲取符合所述檢索條件的所述當(dāng)前編輯控件的可選項數(shù)據(jù);
填充單元105,用于將符合檢索條件的可選項數(shù)據(jù)填充到與所述當(dāng)前編輯控件關(guān)聯(lián)的輔助下拉列表中。
請參看圖9,其為本申請的數(shù)據(jù)處理裝置實施例獲取單元101的具體示意圖??蛇x的,所述獲取單元101包括:
判斷子單元1011,用于根據(jù)預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系,判斷是否存在與所述當(dāng)前編輯控件具有級聯(lián)約束關(guān)系的父級編輯控件;
獲取子單元1013,用于若上述判斷結(jié)果為是,則獲取所述父級編輯控件的控件名和控件值,并將所述父級編輯控件作為所述當(dāng)前編輯控件,返回執(zhí)行所述根據(jù)預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系,判斷是否存在與所述當(dāng)前編輯控件具有 級聯(lián)約束關(guān)系的父級編輯控件的步驟。
可選的,所述編輯控件具有父級編輯控件屬性;所述預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系被設(shè)置在各個編輯控件的所述父級編輯控件屬性中。
可選的,所述判斷子單元1011包括:
讀取子單元,用于讀取所述當(dāng)前編輯控件的父級編輯控件屬性的屬性值;
第一判斷子單元,用于根據(jù)所述父級編輯控件屬性的屬性值,判斷是否存在與所述當(dāng)前編輯控件具有級聯(lián)約束關(guān)系的所述父級編輯控件。
可選的,所述父級編輯控件屬性的屬性值包括所述父級編輯控件的路徑名和控件名;所述獲取子單元1013包括:
解析子單元,用于解析所述父級編輯控件屬性的屬性值,獲取所述父級編輯控件的路徑名和控件名;
第一獲取子單元,用于根據(jù)所述父級編輯控件的路徑名和控件名,獲取所述父級編輯控件;
讀取子單元,用于讀取所述父級編輯控件的控件值。
可選的,所述檢索單元103包括:
生成子單元,用于根據(jù)獲取的所述父級編輯控件和各級祖先編輯控件的控件名和控件值對,形成所述檢索條件;
第一檢索子單元,用于通過預(yù)設(shè)的查詢程序,在所述預(yù)存的選項數(shù)據(jù)集中檢索,獲取符合所述檢索條件的所述當(dāng)前編輯控件的可選項數(shù)據(jù)。
請參看圖10,其為本申請的數(shù)據(jù)處理裝置實施例的具體示意圖??蛇x的,還包括:
構(gòu)建關(guān)系單元201,用于構(gòu)建所述預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系;所述構(gòu)建所述預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系,采用如下方式:
在文檔對象模型中設(shè)置各個編輯控件之間的級聯(lián)約束關(guān)系。
可選的,所述編輯控件具有父級編輯控件屬性;所述預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系被設(shè)置在各個編輯控件的所述父級編輯控件屬性中;所述構(gòu)建關(guān)系單元201包括:
編寫子單元,用于在文檔對象模型中編寫各個編輯控件;
配置子單元,用于通過所述父級編輯控件屬性,配置各個編輯控件之間的 級聯(lián)約束關(guān)系。
可選的,所述填充單元105包括:
設(shè)置子單元,用于為各個可選項數(shù)據(jù)設(shè)置各自對應(yīng)的點擊事件;所述點擊事件被觸發(fā)時,將與該點擊事件對應(yīng)的可選項數(shù)據(jù)作為所述輸入框控件的輸入值;
填充子單元,用于將設(shè)置點擊事件后的各個可選項數(shù)據(jù),填充到與所述當(dāng)前編輯控件關(guān)聯(lián)的輔助下拉列表中。
可選的,還包括:
監(jiān)聽單元203,用于監(jiān)聽所述編輯控件的所述預(yù)設(shè)的顯示下拉列表事件。
請參考圖11,其為本申請的電子設(shè)備實施例的流程圖。由于設(shè)備實施例基本相似于方法實施例,所以描述得比較簡單,相關(guān)之處參見方法實施例的部分說明即可。下述描述的設(shè)備實施例僅僅是示意性的。
本申請實施例還提供一種電子設(shè)備,該電子設(shè)備包括:顯示器1101;處理器1102;以及存儲器1103,用于存儲數(shù)據(jù)處理裝置,所述數(shù)據(jù)處理裝置被所述處理器1102執(zhí)行時,包括如下步驟:當(dāng)為編輯控件預(yù)設(shè)的事件監(jiān)聽器監(jiān)聽到預(yù)設(shè)的顯示下拉列表事件時,根據(jù)預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系,獲取當(dāng)前編輯控件的父級編輯控件和各級祖先編輯控件的控件名和控件值;以獲取的所述父級編輯控件和各級祖先編輯控件的控件名和控件值對形成檢索條件,在預(yù)存的選項數(shù)據(jù)集中檢索,以獲取符合所述檢索條件的所述當(dāng)前編輯控件的可選項數(shù)據(jù);將符合檢索條件的可選項數(shù)據(jù)填充到與所述當(dāng)前編輯控件關(guān)聯(lián)的輔助下拉列表中。
本申請實施例所述的電子設(shè)備包括個人電腦、PAD、iPad等終端設(shè)備,以及移動通訊設(shè)備,即:通常所說的手機或者智能手機。該電子設(shè)備中的存儲器中存儲有數(shù)據(jù)處理裝置,該數(shù)據(jù)處理裝置用于根據(jù)預(yù)設(shè)的級聯(lián)約束關(guān)系獲取符合條件的可選項數(shù)據(jù),并將獲取到的數(shù)據(jù)填充到與編輯控件關(guān)聯(lián)的輔助下拉列表中。
本申請實施例提供的數(shù)據(jù)處理方法,當(dāng)為編輯控件預(yù)設(shè)的事件監(jiān)聽器監(jiān)聽到預(yù)設(shè)的顯示下拉列表事件時,通過根據(jù)預(yù)設(shè)的編輯控件級聯(lián)約束關(guān)系,獲取當(dāng)前編輯控件的父級編輯控件和各級祖先編輯控件的控件名和控件值;并以獲取的所述父級編輯控件和各級祖先編輯控件的控件名和控件值對形成檢索條 件,在預(yù)存的選項數(shù)據(jù)集中檢索,以獲取符合所述檢索條件的所述當(dāng)前編輯控件的可選項數(shù)據(jù);將符合檢索條件的可選項數(shù)據(jù)填充到與所述當(dāng)前編輯控件關(guān)聯(lián)的輔助下拉列表中,使得具有級聯(lián)約束關(guān)系的編輯控件需要聯(lián)動顯示可選項數(shù)據(jù)時,能夠通過一個統(tǒng)一的查詢程序獲取編輯控件的可選項數(shù)據(jù),避免為每個編輯控件分別編寫查詢程序,減少了實現(xiàn)編輯控件聯(lián)動顯示的程序代碼,從而達到減少人工工作量的效果。
本申請雖然以較佳實施例公開如上,但其并不是用來限定本申請,任何本領(lǐng)域技術(shù)人員在不脫離本申請的精神和范圍內(nèi),都可以做出可能的變動和修改,因此本申請的保護范圍應(yīng)當(dāng)以本申請權(quán)利要求所界定的范圍為準(zhǔn)。
在一個典型的配置中,計算設(shè)備包括一個或多個處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
內(nèi)存可能包括計算機可讀介質(zhì)中的非永久性存儲器,隨機存取存儲器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲器(ROM)或閃存(flash RAM)。內(nèi)存是計算機可讀介質(zhì)的示例。
1、計算機可讀介質(zhì)包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術(shù)來實現(xiàn)信息存儲。信息可以是計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計算機的存儲介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機存取存儲器(SRAM)、動態(tài)隨機存取存儲器(DRAM)、其他類型的隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學(xué)存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設(shè)備或任何其他非傳輸介質(zhì),可用于存儲可以被計算設(shè)備訪問的信息。按照本文中的界定,計算機可讀介質(zhì)不包括非暫存電腦可讀媒體(transitory media),如調(diào)制的數(shù)據(jù)信號和載波。
2、本領(lǐng)域技術(shù)人員應(yīng)明白,本申請的實施例可提供為方法、系統(tǒng)或計算機程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。