关于ajax的问题,跟大家分享一下

最近遇到了一个问题,困扰了我好几天,是这样的,我点击grid上的一个单元格时,会弹出上传下载的公共页面,实现方式:

function OnMouseUp(tableName, itemName) {

                    var column = igtbl_getColumnById(itemName);

                    if (column != null) {

                        var cell = igtbl_getCellById(itemName);

                        if (cell != null) {

                            if (cell.Column.Key == "ATTACHMENT") {

                                var OID = '<%=OID %>';

                                var linkId = cell.Row.getCellFromKey("LinkId").getValue();

                                var result;

                                $.ajax({

                                url: "AjaxCheckVendorInfoStatus.ashx?OID=" + OID,

                                    cache: false,

                                    async: false,

                                    success: function(data) {

                                        result = data;

                                        if (result == "0") {

                                            window.showModalDialog('../Common/FileUploadEx.aspx?LinkID=' + encodeURI(linkId)

                                                         + '&FileType=PO&FileStatus=Upload&AllowDelete=Y');

                                            document.getElementById('<%=cmdRefresh.ClientID %>').click();

                                            return true;

                                        }

                                        else {

                                            window.showModalDialog('../Common/FileUploadEx.aspx?LinkID=' + encodeURI(linkId)

                                                         + '&FileType=PO&FileStatus=View&AllowDelete=N');

                                        }

                                    }

                                });

                            }

                            else if (cell.Column.Key == "EXPIRYDATE") {

                                document.getElementById("<%=txtChangedDate.ClientID %>").value = cell.getValue();

                                document.getElementById("<%=txtChangedDate.ClientID %>").click();

                                if (document.getElementById("<%=txtChangedDate.ClientID %>").value == "null") {

                                    cell.setValue(" ");

                                }

                                else {

                                    cell.setValue(document.getElementById("<%=txtChangedDate.ClientID %>").value);

                                }

                            }

                    }

                }

                return false;                

            }  

因为我要动态的去后台判断当前的状态,所以用了ajax去取状态,然后会调用cmdRefresh(document.getElementById('<%=cmdRefresh.ClientID %>').click();)的click方法去重新绑定grid

绑定方法

protected void cmdRefresh_ServerClick(object sender, EventArgs e)

        {

            BindGrid4File();

        }

现在问题出现了,我在对上传文件的共公页面操作完成以后,老是不能正确的刷新页面,debug到代码里面,看到值也是能取到的,但是就不刷新页面,纠结中……,但是页面上还有一个按钮,操作完成以后也会刷新页面,所以就比较两个按钮的区别,发现问题是一个用ajax一个不用ajax,然后把问题锁定在ajax上,网上查询资料发现

定义和用法

ajax() 方法通过 HTTP 请求加载远程数据。

该方法是 jQuery 底层 AJAX 实现。简单易用的高层实现见 $.get, $.post 等。$.ajax() 返回其创建的 XMLHttpRequest 对象。大多数情况下你无需直接操作该函数,除非你需要操作不常用的选项,以获得更多的灵活性。

最简单的情况下,$.ajax() 可以不带任何参数直接使用。

注意:所有的选项都可以通过 $.ajaxSetup() 函数来全局设置。

参数

options

类型:Object

可选。AJAX 请求设置。所有选项都是可选的。

async

类型:Boolean

默认值: true。默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。

注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。

cache

类型:Boolean

默认值: true,dataType 为 script 和 jsonp 时默认为 false。设置为 false 将不缓存此页面。

jQuery 1.2 新功能。

看到这里以后发现可能是async的参数值设错了,然后改为true,问题解决。

posted @ 2013-01-28 11:35  kevin_h_wang  阅读(192)  评论(0编辑  收藏  举报