当前位置:编程学习 > C#/ASP.NET >>

Ajax postback问题

页面(A)上有一个按钮,还有一个auto complete textbox,使用ajax填充数据。
点击按钮打开新的另外一页(B)
每次点击的时候,当前页面(A)叶面刷新的时候提示服务器找不到,新的页面B却没有问题
察看A的页面属性:
res://C:\WINDOWS\system32\shdoclc.dll/dnserror.htm#http://localhost/ECappsWeb/Customer/QuotationDetails.aspx
http://localhost/ECappsWeb/Customer/QuotationDetails.aspx是一个有效地址,我可以直接在浏览器打开。

如果我在A上不用AJAX, 一切正常。是ajax破坏了postback吗?有什么解决办法?
谢谢

--------------------编程问答-------------------- 学习  帮顶 --------------------编程问答-------------------- ajax 做 异步postback --------------------编程问答-------------------- 2楼师兄知道如何可以解决吗? --------------------编程问答-------------------- 没看明白你的问题,呵呵,是完全手写的ajax,还是用的哪个ajax框架(比如ajax.net)?页面a上的按钮在异步刷新控件里面还是在外面?当前页面(A)刷新的时候提示服务器找不到----是提示找不到服务器?还是提示服务器找不到页面B?或者是找不到页面A?呵呵,问题表达清楚啦,也许能更好的解决问题 --------------------编程问答-------------------- 这个应该不是ajax的问题
搂主,能把具体的错误贴出来吗?然后能说说你页面实现的功能 --------------------编程问答-------------------- 我用AjaxPro。
点击A上button打开子窗口B,A自己并没有关闭。A在刷新的时候先出现一个警告,"Internet Explore cannot open the internnet site http://localhost/ECappsWeb/Customer/QuotationDetails.aspx, operation aborted".点击这个alter的确认,页面显示"Cannot find server" --------------------编程问答-------------------- 你能把你页面的脚本贴出来吗 --------------------编程问答-------------------- a页面上用ajax,a页面刷新的是a页面的局部,那你为什么要打开b页面并关闭a页面? --------------------编程问答-------------------- 代码如下:
我是参照下面的网址
http://www.cnblogs.com/mvp33650/archive/2007/04/27/730319.html 
我没有关闭A,A是主窗口,B时详细资料,是一个弹出窗口,因为点击按钮时候有postback,页面自动刷新。
------------------------------- 
CS file
--------------------------------
protected void Page_Load(object sender, EventArgs e)
    {        
           if (hidCustCode.Value != "N")
                AjaxPro.Utility.RegisterTypeForAjax(typeof(Customer_QuotationDetails));
        if (!Page.IsPostBack)
        {
            InitializePage();
            AddAtribute();
            if (PageMode != (int)AAEnumeration.PageMode.NULL)
            {                
                    BindData();
              }
            }
        }
    }
    private void AddAtribute()
    {
        txtCUST_CODE.Attributes.Add("onfocus", "setControlOnFoucs()");
        txtCUST_CODE.Attributes.Add("onblur", "setControlLostFoucs()");
        btnAddItem.Attributes.Add("onClick", "setControlLostFoucs()");
        btnSaveItem.Attributes.Add("onClick", "setControlLostFoucs()");
        btnRetrieve.Attributes.Add("onClick", "setControlLostFoucs()");
     }

    [AjaxMethod()]
    public ArrayList GetCustomerCode(string strQuery)
    {
        //ArrayList items = AAPool.GetCustomerCode();
       //For Testing
        ArrayList items = new ArrayList();
        for (int i = 0; i < 10; i++)
        {
            items.Add("A" + i.ToString());
            items.Add("B" + i.ToString());
        }
        ArrayList selectItems = new ArrayList();
        foreach (string str in items)
        {
            if (str.ToUpper().IndexOf(strQuery.ToUpper()) == 0)
            {
                selectItems.Add(str);
            }
        }
        return selectItems;
    }
 protected void btnRetrieve_Click(object sender, EventArgs e)
    {
        Hashtable htable = new Hashtable();
        htable.Add(AAConstant.PageMode, (int)AAEnumeration.PageMode.ADD);
        ClientScript.RegisterStartupScript(this.GetType(), otherQuotation, GetSecondDetailsURL(htable, 
Constant.RetrieveFromOtherQuotationUI, otherQuotation));
    }

--------------------------------
aspx file
--------------------------------
<script language="jscript">
        mainLoop = function()
        {
            val = escape( queryField.value );
            if( lastVal != val && document.getElementById('hidCustCode').value == 'Y' )
            {
                //alert("div " + document.getElementById('hidCustCode').value);
                var response = Customer_QuotationDetails.GetCustomerCode( val );
                showQueryDiv( response.value );
                lastVal = val;
            }
            setTimeout('mainLoop()', 100);
            return true;
        } 
        
        function setControlOnFoucs()
        {            
            document.getElementById('hidCustCode').value = 'Y';
        }
         function setControlLostFoucs()
        {
            document.getElementById(ctrlID).value = 'N';
        }
    </script>    
    <asp:TextBox ID="txtCUST_CODE" runat="server" Width="90%"> </asp:TextBox>
    <script language="jscript">InitQueryCode("" + '<%= txtCUST_CODE.ClientID %>' + "");</script>
----------------------------------------------------------------------------
--------------------编程问答-------------------- ajaxpro不会用asp.net ajax我到可以看看。
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,