导航

智能查询

Posted on 2008-09-27 09:07  Niko  阅读(354)  评论(0)    收藏  举报

智能查询前台代码

 

 

<script type="text/javascript" language="javascript">
        var xmlHttp;
        var completeDiv;
        var inputField;
        var nameTable;
        var nameTableBody;
        var flag=false;
       
        function insider(name,id){
            this.name = name;
            this.id = id;
        }
       
        var insiders = new Array();

        function createXMLHttpRequest(){
            if (window.ActiveXObject) {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            else if (window.XMLHttpRequest) {
                xmlHttp = new XMLHttpRequest();               
            }
        }
       
        function setflag(){
            flag = true;
        }
       
        function DisSelect(){
            if(flag==false)
            document.getElementById("popup").style.display="none";
        }
       
        function initVars() {
            inputField = document.getElementById("ctl00$ContentPlaceHolder1$OfferEditPart$_owner");           
            nameTable = document.getElementById("name_table");
            completeDiv = document.getElementById("popup");
            nameTableBody = document.getElementById("name_table_body");
            document.getElementById("popup").style.display="block";
        }
       
        function findNames() {
          if   (event.keyCode   ==   13)  
         {   initVars();
           if (inputField.value.length > 0)
            {
                createXMLHttpRequest();
                var url = "../GetInsider.aspx?name=" + inputField.value; 
                xmlHttp.open("GET", url, true);
                xmlHttp.onreadystatechange = callback;
                xmlHttp.send(null);
            }
            else
            {
                clearNames();
            }
            }
        }

        function callback(){          
            if (xmlHttp.readyState == 4) {
                if (xmlHttp.status == 200)
                {
                    try
                    {
                        var test = document.getElementById("a");
                       // var name = xmlHttp.responseXML.getElementsByTagName("name")[0].firstChild.data;
                    }
                    catch(e)
                    {
                        document.getElementById("popup").style.display="none";
                        clearNames();
                    }
                    setNames(xmlHttp.responseXML.getElementsByTagName("insiders"));
                }
                else if (xmlHttp.status == 204)
                {
                    clearNames();
                }
            }
        }
       
        function setNames(the_names){           
            clearNames();
            var size = the_names[0].childNodes.length;
            if (size > 0)
            {
                setOffsets();
            }
            var row,cell,spans;
            for (var i = 0; i < size; i++) {
                var nextNode = the_names[0].childNodes[i].childNodes[0].childNodes[0].data;
                var id = the_names[0].childNodes[i].childNodes[1].childNodes[0].data;
                insiders[insiders.length] = new insider(nextNode,id);
                row  =document.createElement("tr");
                cell =document.createElement("td");
                cell.onmouseout = function() {this.style.backgroundColor='#FFFFFF'; flag=false;};
                cell.onmouseover = function() {this.style.backgroundColor='#E0E0E0';flag=true;};
                cell.setAttribute("bgcolor","#FFFFFF");
                cell.setAttribute("className","in_textboxmedium");
                cell.setAttribute("border","0");
                //cell.setAttribute("onmouseover","setflag()");
                cell.onclick = function() { populateName(this); };

                var txtName = document.createTextNode(nextNode);
                cell.appendChild(txtName);
                row.appendChild(cell);            
                nameTableBody.appendChild(row);
            }
        }

        function setOffsets() {
            var end = inputField.offsetWidth;
            var left = calculateOffsetLeft(inputField);
            var top = calculateOffsetTop(inputField) + inputField.offsetHeight;
            completeDiv.style.border = "black 1px solid";
            completeDiv.style.left = left + "px";
            completeDiv.style.top = top + "px";
            nameTable.style.width="200px";
        }
       
        function calculateOffsetLeft(field) {
          return calculateOffset(field, "offsetLeft");
        }

        function calculateOffsetTop(field) {
          return calculateOffset(field, "offsetTop");
        }

        function calculateOffset(field, attr) {
          var offset = 0;
          while(field) {
            offset += field[attr];
            field = field.offsetParent;
          }
          return offset;
        }

        function populateName(cell) {
            var count = insiders.length;
            for(var i = 0; i< count; i++)
            {
                if (cell.firstChild.nodeValue == insiders[i].name)
                {
                   document.getElementById("ctl00$ContentPlaceHolder1$OfferEditPart$_ownerId").value =  insiders[i].id;
                    break;
                }
            }
            inputField.value = cell.firstChild.nodeValue;
            clearNames();
        }
     
        function clearNames() {
            var ind = nameTableBody.childNodes.length;
            for (var i = ind - 1; i >= 0 ; i--) {
                 nameTableBody.removeChild(nameTableBody.childNodes[i]);
            }
            completeDiv.style.border = "none";
        }
       
       
            function   document.onkeypress()  
              {  
                  if   (event.keyCode   ==   13)  
              event.keyCode   =0;  
              } 
</script>

 

 

 

<asp:TextBox ID="_owner" runat="server"  onblur="DisSelect();" onkeyup="findNames();" ></asp:TextBox>
                            <div style="position:absolute;top:0;left:0; "  id="popup">
                        <table id="name_table" bgcolor="#FFFAFA" border="0" cellspacing="0" cellpadding="0">           
                            <tbody id="name_table_body"></tbody>
                        </table>
                  </div>

 

后台代码:

 

protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.QueryString["name"] != null && Request.QueryString["name"].ToString() != string.Empty)
            {
                string domainAccount = Request.QueryString["name"].ToString();
                List<Microsoft.Insider.Model.Insider> insiderUser = BLLOffer.GetInsiderUserByDomainAccount(domainAccount);

                Response.ContentType = "text/xml";
                Response.Write("<?xml version='1.0' encoding='ISO-8859-1'?>");
                Response.Write("<insiders>");
                foreach(Microsoft.Insider.Model.Insider insider in insiderUser)
                {
                    Response.Write("<insider><name>" + insider.DomainAccount + "</name>");
                    Response.Write(" <id>" + insider.ID +"</id></insider>");                  
                }
                Response.Write("</insiders>");
                Response.End();
            }
        }