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

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

多級選擇問題的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對象中數據丟失或缺少的問題,此時建議仍采用表單提取的方法來完成多級選擇。



主站蜘蛛池模板: 香蕉国产成版人视频在线观看 | 午夜精品视频在线观看 | 四虎影院官网 | 午夜91| 天天干视频网站 | 啪啪午夜视频 | 日本欧美不卡一区二区三区在线 | 中文字幕一精品亚洲无线一区 | 欧美亚洲丝袜 | 五月花综合网 | 伊人免费网 | 青草网址| 最近的2019中文字幕免费一页 | 五月花精品视频在线观看 | 欧美在线观看高清一二三区 | 色天使在线观看 | 中文字幕精品亚洲无线码二区 | 亚洲成a人片在线观看www | 日日噜噜夜夜狠狠视频欧美人 | 在线播放精品一区二区啪视频 | 四虎在线永久免费观看 | 午夜毛片福利 | 天天做天天添天天谢 | 性刺激免费视频观看在线观看 | 亚洲欧美视频在线 | 青青青青娱乐 | 天天综合天天色 | 中国黄色毛片 大片 | 青青青爽视频在线观看 | 日韩精品一区二区三区大桥未久 | 香蕉久久夜色精品国产尤物 | 天天爱天天插 | 色www亚洲| 日本一区二区三区高清在线观看 | 日日摸夜夜爽人人添 | 日本视频在线免费 | 日日爱影视 | 中文字幕波多野不卡一区 | 四虎永久免费影院在线 | 日韩视频高清免费看 | 中文字幕欧美日韩在线不卡 |