人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

多級選擇問題的ASP完成

多級選擇問題的ASP完成

更新時間:2022-08-16 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

在開發(fā)網(wǎng)絡(luò)應(yīng)用程序時,常常會遇到多級選擇的問題,即“子”一級選擇的備選項信息依賴于“父”一級選擇的數(shù)據(jù)。例如:在一個網(wǎng)頁中包含兩個select輸入控件,一個用于列表備選的國家信息(“父”一級選擇),另一個用于列表省份信息(“子”一級選擇)。當(dāng)用戶在第一個select輸入控件(“父”一級選擇)中選中國家后,另一個select輸入控件(“子”一級選擇)的選項也要變?yōu)橄鄳?yīng)國家的省、州選項,而他們之間的關(guān)系動態(tài)地保存在數(shù)據(jù)庫中。
提出問題
傳統(tǒng)的解決方法可以描述為:用戶選中“父”一級選擇后,通過form提交的方式,由相應(yīng)的處理程序從數(shù)據(jù)庫中提取“子”一級選擇的信息,并刷新客戶端頁面中“子”一級選擇的數(shù)據(jù)。
采用這種方法的缺點是:
●必須編寫一個或多個ASP程序分別處理用戶的請求,程序代碼質(zhì)量不高;
●當(dāng)級數(shù)超過兩級時,必須解決“祖父”一級的選擇信息的保存問題;
●每一次用戶的修改或瀏覽多級信息,都必須重復(fù)提交以獲得多級信息,這樣,增加了服務(wù)器的負(fù)擔(dān),響應(yīng)速度較慢。
針對以上方案中存在的問題,筆者在實踐中找到了一種解決方法。該方法靈活應(yīng)用HTML語言中的輸入控制對象hidden,當(dāng)hidden中的數(shù)據(jù)量小于2K時,可一次性將多級信息下載到客戶端,并通過服務(wù)器端腳本與客戶端腳本的共同作用,直接在客戶端完成多級選擇。
解決方法
HTML語言中的輸入控制對象hidden可以通過name-value的方式存儲字符串?dāng)?shù)據(jù),而且該控制對象在客戶端界面上不可見。
利用該輸入控制,可以將數(shù)據(jù)庫中多級選擇信息按照一定的規(guī)則編碼,分別存放在多個hidden對象中。當(dāng)用戶點擊父級選項時,客戶端程序按照一定的對應(yīng)關(guān)系查找相應(yīng)的hidden對象,并將hidden對象中的字符串信息解碼,刷新子級選擇對象。
其中,服務(wù)器端腳本需要完成的工作是將數(shù)據(jù)庫中的多級信息按照順序依次提取,并且將同級的信息數(shù)據(jù)按照一定規(guī)則編碼形成字符串,存儲在不同的hidden對象中;而客戶端腳本需要完成的工作是將hidden對象中的字符串?dāng)?shù)據(jù)解碼,并顯示在子級選擇對象中。
需要特別指出的是,數(shù)據(jù)的字符串編碼是此種方法成功與否的一個關(guān)鍵因素,因此必須保證編碼方法正確無誤。
具體實現(xiàn)
下面以國家、省份兩級選擇為例,介紹在ASP中多級選擇的具體實現(xiàn)方法。
在SQL Server 7.0數(shù)據(jù)庫CountryDoc中存放兩級信息的表分別為CountryName char(20)和ProvinceName char(20)。
考慮到國家名、省/州名為字符串?dāng)?shù)據(jù),且不包含字符“0”,因此在選擇編碼方法時,采用5個連續(xù)的字符“0”作為不同數(shù)據(jù)項之間的分隔符。編碼后的省份數(shù)據(jù)具體形式為“北京00000上海00000黑龍江00000吉林”。







國家 省份、州



//依次從動態(tài)數(shù)組中提取國家名稱,并提取對應(yīng)的省級數(shù)據(jù)信息
<% for="" i="0" to="" countrynum-1="" step="" 1="" %="">
<% temp1="CountryArr(i)" %="">
<% provincenum="0" %="">
<% sqltext="“select" count(*)="" as="" recordnum="" from="" countrydoc="" where="" countryname="‘“&" temp1="" &="" ”’”="" %=""><% set="" rs="conn.Execute(sqlText)" %="">
<% provincenum="rs(“RecordNum”)" %="">
<% rs.close="" %="">
<% provincestr="“”" %="">
<% sqltext="“select" provincename="" from="" countrydoc="" where="" countryname="‘“" &="" temp1="" &="" ”’”="" %="">
<% set="" rs="conn.Execute(sqlText)" %="">
<% do="" while="" not="" rs.eof="" %="">
//將省級信息字符串編碼(以“00000”分隔)
<%provincestr=provincestr &="" trim(rs="">
(“ProvinceName”)) & “00000” %>
<% rs.movenext="" %="">
<% loop="" %="">
<% rs.close="" %="">
//將編碼后的省級數(shù)據(jù)寫入hidden對象中
<%>”) %>
//保存數(shù)據(jù)項個數(shù)
<%>”) %>
<% next="" %="">
<% set="" rs="nothing" %="">
<% conn.close="" %="">
<% set="" conn="nothing" %="">

以上代碼在NT 4.0+IIS 4.0+SQL Server 7.0+IE 5.0環(huán)境中運行通過。
由于整個工作都在一個ASP程序中完成,并且所有數(shù)據(jù)一次性下載到客戶端,用戶選擇時不存在“祖父”一級的選擇信息的保存問題(沒有刷新的工作)。
小 結(jié)
如果數(shù)據(jù)量不大的話,采用本文介紹的方法是可行的。但是當(dāng)一個hidden中存儲的數(shù)據(jù)量超過2K時,受到HTML語言的自身限制,可能會存在hidden對象中數(shù)據(jù)丟失或缺少的問題,此時建議仍采用表單提取的方法來完成多級選擇。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 德兴市| 海盐县| 高安市| 连州市| 漯河市| 郯城县| 闽侯县| 方正县| 兴海县| 河源市| 锡林郭勒盟| 茂名市| 孝义市| 马龙县| 翁牛特旗| 甘肃省| 苏州市| 深圳市| 青龙| 东至县| 云梦县| 景德镇市| 尖扎县| 凤山市| 正宁县| 阳曲县| 乌兰察布市| 灌阳县| 建宁县| 凌源市| 华坪县| 双牌县| 南昌市| 梨树县| 兴仁县| 嵊泗县| 丰宁| 福鼎市| 延长县| 新郑市| 阿拉善盟|