一个简单的实现JavaScript ASP.NET C#的场景,问题改写

时间:2010-05-25 20:37:43

标签: asp.net javascript

之前我曾问过这个问题,但我得不到正确答案。

所以,这很简单:

textbox.text='user typing';

按钮:将值存储到变量和数据库中。

非常简单,没什么可说的。 但是应该没有回帖,那就是页面不能再加载。

尝试Ajax?我试过了,但它没有用。

我花了很多时间尝试使用JavaScript Ajax实现这一点,并阅读了很多帖子。

但由于某些原因,我无法正确实现该功能。

1 个答案:

答案 0 :(得分:1)

   var xmlHttp; 
   var is_ie = (navigator.userAgent.indexOf('MSIE') >= 0) ? 1 : 0; 
    var is_ie5 = (navigator.appVersion.indexOf("MSIE 5.5")!=-1) ? 1 : 0; 
    var is_opera = ((navigator.userAgent.indexOf("Opera6")!=-1)||(navigator.userAgent.indexOf("Opera/6")!=-1)) ? 1 : 0; 
    //netscape, safari, mozilla behave the same??? 
    var is_netscape = (navigator.userAgent.indexOf('Netscape') >= 0) ? 1 : 0; 

    function btnClick(){ 
        if (strReportURL.length > 0)
        { 

            //Create the xmlHttp object to use in the request 
            //stateChangeHandler will fire when the state has changed, i.e. data is received back 
            // This is non-blocking (asynchronous) 
            xmlHttp = GetXmlHttpObject(handler); 
            //Send the xmlHttp get to the specified url 
            xmlHttp_Get(xmlHttp, "AjaxHanlder.aspx?Data="+txtData.Text,handler); 

        } 

    } 

    //stateChangeHandler will fire when the state has changed, i.e. data is received back 
    // This is non-blocking (asynchronous) 
    function handler() 
    { 
        //readyState of 4 or 'complete' represents that data has been returned 
        if (xmlHttp.readyState == 4 || xmlHttp.readyState == 'complete')
        { 
            //Gather the results from the callback 
            var result = xmlHttp.responseText; 

            //Populate the innerHTML of the div with the results 
            document.getElementById('lblResult').innerHTML = result;        
        } 
    } 


    // XMLHttp send GET request 
    function xmlHttp_Get(xmlhttp, url,handler) { 
        xmlhttp.open('GET', url, true); 
        xmlhttp.onreadystatechange = handler; 
        xmlhttp.send(null); 
    } 

    function GetXmlHttpObject(handler) { 
        var objXmlHttp = null;    //Holds the local xmlHTTP object instance 

        //Depending on the browser, try to create the xmlHttp object 
        if (is_ie){ 
            //The object to create depends on version of IE 
            //If it isn't ie5, then default to the Msxml2.XMLHTTP object 
            var strObjName = (is_ie5) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP'; 

            //Attempt to create the object 
            try{ 
            if(!objXmlHttp)
                objXmlHttp = new ActiveXObject(strObjName); 
                //objXmlHttp.onreadystatechange = handler; 
            } 
            catch(e){ 
            //Object creation errored 
                alert('IE detected, but object could not be created. Verify that active scripting and activeX controls are enabled'); 
                return; 
            } 
        } 
        else if (is_opera){ 
            //Opera has some issues with xmlHttp object functionality 
            alert('Opera detected. The page may not behave as expected.'); 
            return; 
        } 
        else{ 
            // Mozilla | Netscape | Safari 
            objXmlHttp = new XMLHttpRequest(); 
            objXmlHttp.onload = handler; 
            objXmlHttp.onerror = handler; 
        } 

        //Return the instantiated object 
        return objXmlHttp; 
    } 


///AJAX HANDLER PAGE

public class AjaxHandler : System.Web.UI.Page
    {


private void Page_Load(object sender, System.EventArgs e)
        {

      if(Request.QueryString["Data"]!=null)
      {

            StoreYourData(Request.QueryString);
      }
        }
    }