日期:2014-05-18  浏览次数:20800 次

再次对于弹出DIV层提问?笨就让自己笨到底。
1.介绍:在页面中,有一个按钮,点击后会弹出一个隐藏层,这个隐藏层里面有服务器控件TEXTBOX与BUTTON,我要用BUTTON按钮的单击事件把TEXTBOX中的值传入数据库,我将代码写在这个BUTTON的单击事件里。
2.运行:当我点页面按钮显示这个隐藏层后(可移动),我在弹出的隐藏层里的TEXTBOX中输入数据,然后点BUTTON按钮,TEXTBOX中的值完整的传入到数据库中,但是当我点了BUTTON后这个隐藏层随着页面的回发(刷新)也自动的隐藏了起来(虽然数据已经正确传入数据库中),但不是我想要的效果,如果我还要继续往TEXTBOX中输入数据呢?难道又要点一次页面中显示隐藏层的按钮吗?这样效率太不高了,我要的效果是当我点了BUTTON后,数据要正确传入数据库并且弹出的层仍然显示着,让我继续输入,直到我要手动关闭弱出的层(当然弹出的层右上角有关闭层的方法)。我查了相关资料很久了,但还是没有得到解决的方案。
提示:1.我用的都是服务器控件不是HTML控件,如果把弹出层中的按钮换成HTML控件,我试了页面就不会刷新,弹出来的层也不会自动隐藏起来,但是我不知道怎么用HTML控件传值。
2.用服务器控件,我加用AJAX,让弹出层里的控件传值,不让页面刷新,弹出来的层也不会自动隐藏起来了,但是我在弹出的层中用了FILEUPLOAD上传图片的控件,而且带有预览功能,当用了AJAX,传值就会报错,这是意料中的事儿,直到现在我还是没得到解决。
请教高手朋友们,帮我解决一下,再此先谢谢了!

------解决方案--------------------
HTML code

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <script type="text/javascript" language="javascript">
        var popup_dragging = false;
        var popup_target;
        var popup_mouseX;
        var popup_mouseY;
        var popup_mouseposX;
        var popup_mouseposY;
        var popup_oldfunction;
        function popup_display(x) {
            var win = window.open();
            for (var i in x) win.document.write(i + ' = ' + x[i] + '<br>');
        }
        // ----- popup_mousedown -------------------------------------------------------
        function popup_mousedown(e) {
            var ie = navigator.appName == "Microsoft Internet Explorer";
            if (ie && window.event.button != 1) return;
            if (!ie && e.button != 0) return;
            popup_dragging = true;
            popup_target = this['target'];
            popup_mouseX = ie ? window.event.clientX : e.clientX;
            popup_mouseY = ie ? window.event.clientY : e.clientY;
            if (ie)
                popup_oldfunction = document.onselectstart;
            else popup_oldfunction = document.onmousedown;
            if (ie)
                document.onselectstart = new Function("return false;");
            else document.onmousedown = new Function("return false;");
        }
        // ----- popup_mousemove -------------------------------------------------------
        function popup_mousemove(e) {
            if (!popup_dragging) return;
            var ie = navigator.appName == "Microsoft Internet Explorer";
            var element = document.getElementById(popup_target);
            var mouseX = ie ? window.event.clientX : e.clientX;
            var mouseY = ie ? window.event.clientY : e.clientY;
            element.style.left = (element.offsetLeft + mouseX - popup_mouseX) + 'px';
            element.style.top = (element.offsetTop + mouseY - popup_mouseY) + 'px';
            popup_mouseX = ie ? window.event.clientX : e.clientX;
            popup_mouseY = ie ? window.event.clientY : e.clientY;
        }
        // ----- popup_mouseup ---------------------
        function popup_mouseup(e) {
            if (!popup_dragging) return;
            popup_dragging = false;
            var ie = navigator.appName == "Microsoft Internet Explorer";
            var element = document.getElementById(popup_target);
            if (ie)
                document.onselectstart = popup_oldfunction;
            else document.onmousedown = popup_oldfunction;
        }
        // ----- popup_exit ------------------------
        function popup_exit(e) {
            if (document.getElementById('<%=hid.ClientID %>').value) {
                document.getElementById('<%=hid.ClientID %>').value = 'false';
                element = document.getElementById('popup');
                element.style.visibility = "hidden";
                element.style.display = "none";
                return;
            }
            var ie = navigator.appName == "Microsoft Internet Explorer";