六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

多級選擇問題的ASP完成

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







國家 省份、州



//依次從動態數組中提取國家名稱,并提取對應的省級數據信息
<% 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="" %="">
//將編碼后的省級數據寫入hidden對象中
<%>”) %>
//保存數據項個數
<%>”) %>
<% next="" %="">
<% set="" rs="nothing" %="">
<% conn.close="" %="">
<% set="" conn="nothing" %="">

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



主站蜘蛛池模板: 又粗又硬又爽的三级视频 | 性做久久久久 | 亚洲欧美国产另类 | 在线观看精品自拍视频 | 日本在线免费观看视频 | 亚洲成人福利在线 | 在线调教 | 中文字幕一精品亚洲无线一区 | 天天色影| 色综合久久久久 | 日韩亚洲欧美一区 | 手机福利视频 | 中文字幕免费观看视频 | 亚洲欧美男人天堂 | 欧美综合图片一区二区三区 | 上色天天综合网 | 日韩欧美综合在线 | 色综合a| 日韩中文有码高清 | 天天曰夜夜曰 | 青青青视频在线免费观看 | 色综合久久久久久久 | 午夜在线观看免费视频 | 日本japanese丰满高清成人视 | 日本道在线观看 | 日本高清视频在线的 | 欧美一区中文字幕 | 日本剧情片免费观看网址 | 欧美综合图片区 | 揉女胸视频www网站免费观看 | 性色a v 一区 | 午夜三级黄色片 | 日韩精品视频免费在线观看 | 婷婷在线免费视频 | 在线天堂中文在线资源网 | 亚洲综合九九 | 青春草视频在线观看 | 日本免费观看日本高清视频 | 色www永久免费视频 色www亚洲 | 亚洲天堂免费 | 午夜无遮挡怕怕怕免费视频 |