您的位置:首页 > 编程语言 > ASP

ASP.NET 最近WEB开发遇到的小问题

2013-07-02 19:56 363 查看
最近在做web开发中遇到的小问题进行下总结:

1.在做WEB页面见传值过程中,发现中文内容直接传值会出现乱码现象,如:

             function ViewTicketReportInfo(data) {

            var time = $("#txt_DateMonth").val();

            var url = "../OrderReport/DayTicketHistogram.aspx?round=" + Math.random() + "&CustomerName=" + data+ "&Time=" + time;

            var ws = 1100;

            var sw = 500;

            var winS = "dialogWidth:" + ws + "px;dialogHeight:" + sw + "px;alwaysRaised:yes;center:yes;status:no;help:no;z-look:yes;dialogTop:no;scroll:no";

            window.showModalDialog(url, window, winS);

        }

这个模态窗口在传送值过程中,data的值可能会在DayTicketHistogram.aspx页面无法正常获取到,导致后台的查询或其他操作,由于参数不当的问题出现问题.

解决方法:

就是在传输参数的时候使用escape()
方法进行编译下,是使值适应于WEB传送的格式,使得指定页面能正常获取到值.

2.最近在多次使用模块窗口中发现一个问题  浏览器兼容性问题 如chome浏览器等

  var url = "../OrderReport/GetSalePointNameList.aspx?round=" + Math.random();

            var ws = 730;

            var sw = 550;

            var winS = "dialogWidth:" + ws + "px;dialogHeight:" + sw + "px;alwaysRaised:yes;center:yes;status:no;help:no;z-look:yes;dialogTop:no;scroll:no";

            var tpValue = window.showModalDialog(url, window, winS);

if(tpValue !=""||tpValue !=null){

$("#textSalePointName").val(tpValue);

}

上面这段代码 如果是运行在IE浏览器是没有什么问题的,因为IE对showModalDialog进行了处理,只会弹出一个模块窗口,操作完成关闭后才可以操作其他的.但如果在chome或其他浏览器中时,就会出现问题.

比如: 假设你的模块窗口存在翻页功能时,当你进行完翻页操作是没问题的,但是如果你想传递翻页后数据中的一条记录内容到父页面时会获取不到,其原因就是chome浏览器对showModalDialog窗体解析时是将窗体进行opener操作的,所以在chome中可以在模块窗口没有关闭的情况下,还是可以对父窗体进行操作.

解决方法:

在指定模块窗口中添加代码:

  if (window.opener != undefined) {

                                window.opener.returnValue = result;

                            } else {

                                window.returnValue = result;

                            }

表示判断窗口打开方式并对各种打开方式返回值都进行赋值.

父窗体则加入

            if (tpValue == undefined) {

                tpValue = window.returnValue;

                window.returnValue = "";//如果打开模块窗口  什么都没有操作 直接关闭  会使页面将上次操作的值进行返回给父窗体所以进行清空操作,可以根据需求添加这句话

            }

            if (tpValue != undefined) {

                $("#textSalePointName").val(tpValue);

            }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: