ASP學習:不重新整理頁面篩選資料庫中的資料

來源:互聯網
上載者:User
 我在作asp程式時經常遇到這種情況:
  將資料庫中的資料(如所有僱員名)列在列表框中,程式要求進行選擇其中一項或多項提交到下一個頁面。
  但麻煩的是如果資料(如僱員)過多,會給客戶的選擇帶來麻煩--要從很長的列表中進行資料定位。最好的解決方案是使用者在選擇前採用模糊查詢的方式進行資料定位,準確找出需要選擇的僱員名,再選擇、提交。
  問題出現在我們程式員面前:如何不重新整理頁面篩選從資料庫中篩選資料。本人的方法有兩種:
  1、採用雙列表框的方法
  2、採用XML方法
  本文主要介紹第一種方法:採用雙列表框的方法
  編程思想:
  採用雙列表框,其中一個為隱藏狀態,另一個是顯示給使用者看的列表框。
  程式開始將資料(如僱員姓名)分別裝進兩個列表框中,當使用者需要篩選僱員時首先將顯示列表框清空,再更據篩選條件將資料從隱藏列表框裝入顯示列表框中。
  這樣即可實現不重新整理頁面篩選資料庫中的內容。
  實現:
  下面以SQLSERVER為例,篩選NorthWind庫中Employees表的僱員名進行說明。

  <html>
  <head>
  <title>不重新整理頁面查詢的方法</title>
  <metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
  </head>
  <scriptlanguage="javascript">
  functionsearch_onclick(){
  file://得到篩選僱員的名字
  searchtext=window.searchContent.value

  file://首先移除在所有查詢結果清單中的選項
  j=searchObj.length;
  for(i=j-1;i>=0;i--)
  {
  searchObj.remove(i);
  }
  if(searchtext!=""){
  file://顯示符合篩選條件的僱員
  j=searchSource.length;
  for(i=0;i<j;i++){
  searchsource=searchSource.options(i).text;
  k=searchsource.indexOf(searchtext);
  if(k!=-1){
  option1=document.createElement("option");
  option1.text=searchsource;
  option1.value=searchSource.options(i).value;
  searchObj.add(option1);
  }
  }
  }
  else{
  file://如果沒有輸入查詢條件則顯示所有僱員
  j=searchSource.length;
  for(i=0;i<j;i++){
  searchsource=searchSource.options(i).text;
  option1=document.createElement("option");
  option1.text=searchsource;
  option1.value=searchSource.options(i).value;
  searchObj.add(option1);
  }
  }
  }


 </script>
  <bodybgcolor="#FFFFFF"text="#000000">
  <%
  servername="wyb"'伺服器名
  user="sa"'使用者名稱
  pw=""'使用者密碼
  databasename="northwind"'資料庫名
  setconn=server.CreateObject("adodb.connection")

conn.Open"DRIVER=SQLServer;SERVER="&servername&";UID="&user&";pwd="&pw&";DATABASE="&  databasename
  setrs=server.CreateObject("adodb.recordset")
  sql="Selectemployeeid,lastnamefromemployeesorderbyemployeeid"
  rs.Opensql,conn%>
  <tablewidth="80%"border="1">
  <tr>
  <td>
  <inputtype="text"name="searchContent">
  <inputtype="button"name="Button"value="查  詢">
  </td>
  </tr>
  <tr>
  <td>查詢結果<br>
  <selectname="searchObj"size="10">
    <%dowhilenotrs.eof%>
  <optionvalue="<%=rs("employeeid")%>"><%=rs("lastname")%></option>
  <%rs.movenext
  loop
    %>
  </select>
  <selectname="searchSource"size="10"style="display:none">
  <%
  rs.movefirst
  dowhilenotrs.eof%>
  <optionvalue="<%=rs("employeeid")%>"><%=rs("lastname")%></option>
  <%rs.movenext
  loop
  %>
  </select>
  </td>
  </tr>
  </table>
  <%rs.close
  setrs=nothing
  %>
  </body>
  </html> 



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。