Anthem库的Google Suggest 实现
觸發(fā)事件:
οnkeyup="LoadResults(this.value)"
客戶端js主體:
//兩種形式顯示容器 function ShowDiv(divid) { if (document.layers) {document.layers[divid].visibility="show";} else {document.getElementById(divid).style.visibility="visible";} } //兩種形式隱藏容器 function HideDiv(divid) { if (document.layers) {document.layers[divid].visibility="hide";} else {document.getElementById(divid).style.visibility="hidden";} } //頁(yè)面加載時(shí)發(fā)生 function BodyLoad() { HideDiv("searchresults"); document.form1.keyword.focus(); } function ClearResults() { // 清除容器中所有行子項(xiàng) var resultsdiv = document.getElementById("searchresults"); var counter = resultsdiv.childNodes.length; for (var i = counter -1; i >= 0; i--) { resultsdiv.removeChild(resultsdiv.childNodes[i]); } } function LoadResults(searchterm) { if (searchterm.length == 0) { ClearResults(); HideDiv("searchresults"); return; } // Anthem異步異步調(diào)用服務(wù)器端RetrieveRows方法 Anthem_InvokePageMethod('RetrieveRows',[searchterm] , LoadResultsCallback); } //回調(diào)函數(shù)處理 function LoadResultsCallback(result) { ShowDiv("searchresults"); ClearResults(); // 獲取ajax調(diào)用的回調(diào)結(jié)果 var items = result.value; var count = items.Rows.length; //返回為DataTable對(duì)象時(shí) var count = items.Tables.stores.Rows.length;//返回為DataSet對(duì)象時(shí) var count = items.length; //返回為定制對(duì)象object時(shí) // 創(chuàng)建DOM的表對(duì)象 var divResults = document.getElementById("searchresults"); //顯示容器 var tblTable = document.createElement("table"); //表格 var tablebody = document.createElement("tbody");//表主體 var tablerow, tablecell, tablenode; // 迭代出每一行 for (var i = 0; i < count; i++) { var currenttext = items.Rows[i].Name; //返回為DataTable對(duì)象時(shí) var currenttext = items.Tables.stores.Rows[i].Name; //返回為DataSet對(duì)象時(shí) var currenttext = items[i].Name;//返回為定制對(duì)象object時(shí) tablerow = document.createElement("tr"); //表格行 tablecell = document.createElement("td");//表格單元格 // 構(gòu)建單元屬性和函數(shù) tablecell.onmouseover = function(){this.className='mouseOver';}; tablecell.onmouseout = function(){this.className='mouseOut';}; tablecell.setAttribute("border", "0");//設(shè)置樣式屬性 tablecell.onclick = function(){ReplaceInput(this);};//替換處理 tablenode = document.createTextNode(currenttext); //文本節(jié)點(diǎn) tablecell.appendChild(tablenode); tablerow.appendChild(tablecell); tablebody.appendChild(tablerow); } // 添加表格主體到表格中 tblTable.appendChild(tablebody); // 添加表格到容器中 divResults.appendChild(tblTable); } function ReplaceInput(tablecell) { var inputbox = document.getElementById("keyword"); inputbox.value = tablecell.firstChild.nodeValue;//單元格文本值 ClearResults(); HideDiv("searchresults"); }
服務(wù)器端主體:
//服務(wù)器端三中不同類型對(duì)象的返回 [Anthem.Method] public DataTable RetrieveRows(string searchterm) { DataTable dtReturn = new DataTable(); //....... SqlDataAdapter adpt = new SqlDataAdapter(cmd); adpt.Fill(dtReturn); return dtReturn; } [Anthem.Method] public DataTable RetrieveRows(string searchterm) { SqlDataAdapter adpt = new SqlDataAdapter(cmd); DataSet dsCustomers = new DataSet(); adpt.Fill(dsCustomers, "stores"); // ... return dsCustomers; } [Anthem.Method] public StoreCollection RetrieveRows(string searchterm) { //........ DataTable dtReturn = new DataTable(); //........ SqlDataAdapter adpt = new SqlDataAdapter(cmd); adpt.Fill(dtReturn); StoreCollection strCollection = new StoreCollection(); for (int i = 0; i < dtReturn.Rows.Count; i++) { Store stre = new Store(); stre.Name = (string)dtReturn.Rows[i]["Name"]; strCollection.Add(stre); } return strCollection; }
轉(zhuǎn)載于:https://www.cnblogs.com/johan/archive/2010/03/06/1948001.html
總結(jié)
以上是生活随笔為你收集整理的Anthem库的Google Suggest 实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: loadrunner9.10安装及破解问
- 下一篇: Linux下学C语言开发要学些什么