刚开始写.net 很多地方不明白,请教了现在有一个repearter,其中一列本来是一个链接,url后面跟了个id的参数,点击后出现一个新窗口显示点东西,比较容易现在需要弹出一个div来显示内容 不能刷新页面,我就没辙了,不知道如何解决,发现有的说div里嵌套iframe,有的说xml反正都不会~请教了

解决方案 »

  1.   

    http://topic.csdn.net/u/20080226/14/b2b42796-910d-42a3-81e5-a28bd6103ee4.html 
    参照这个改一下吧
      

  2.   

     <a href="#" onclick="javascript:ShowDiv(3,event);">click</a>
      var gFrame = null;
      function ShowDiv(id,evt)
      {
        if(gFrame == null)
        {
            gFrame = document.createElement("IFRAME");
            document.body.appendChild(gFrame);
            gFrame.style.position = "absolute";
            gFrame.style.zIndex = 1000;
        }
         
        gFrame.src = "b.aspx?id="+id
        gFrame.style.left = evt.x;
        
        gFrame.style.top = evt.y
        
        gFrame.style.display = "";
        
      }
      
      

  3.   

     多谢多谢,顶顶~忘了说一点,这个弹出来的东东顶部还要有一个xx的图片,点了后将这个div撤销掉不显示
    如果是用dom生成iframe的话,是不是这个地方不太好弄?思路一片混乱!传id基本明白了,是不是把绑定的id那列作为javascript函数的参数传出去就行了?艾,以前从来不写前台的,现在痛苦死 
      

  4.   

    div_msg.style.visibility="visible";
    div_msg.style.visibility="hidden";
      

  5.   

     <div id="detail">
            <div id="toolbar" style="cursor: pointer;" onmousedown="down(event)" onmouseup="up();"
                onmousemove="move(event)">
                <span id="wintitle" style="float: left;"></span><span style="float: right; padding-top: 5px;
                    padding-right: 5px;"><a href="javascript:void(0)">
                        <img alt="点击关闭" src="images/x.gif" width="16" height="15" id="img_colse" border="0"
                            onclick="MM_showHideLayers('detail',false)" /></a></span> <span style="clear: both;">
                            </span>
            </div>
            <div id="content">
                <iframe scrolling="auto" id="ifContent" name="ifContent" height="320px" width="100%"
                    style="border-style: outset; border-width: 0px;"></iframe>
            </div>
        </div>    <script type="text/javascript">
        var flag=false;
        var x_start=0;
        var y_start=0;
        function move(e)
        {
            if(flag)
            {         
                var src = e.srcElement || e.target; 
                if(src.id=="img_colse")
                {
                    flag=false;
                    return false;
                }
                var obj=document.getElementById("detail");
                if(e.offsetX)
                {
                    obj.style.left=parseInt(e.clientX-x_start-2) + "px";
                    obj.style.top=parseInt(e.clientY-y_start-2) + "px";
                }
                else
                {
    //                obj.style.left=parseInt(e.clientX- top.leftFrame.document.width -x_start-2) + "px";
    //                obj.style.top=parseInt(e.clientY - top.topFrame.document.height -y_start-2) + "px";            
                }
    //            var spanObj=document.getElementById("mInfo");
    //            spanObj.innerHTML="e.clientX:" + e.clientX;
    //            spanObj.innerHTML+="e.offsetX:" + e.offsetX;
    //            spanObj.innerHTML+="e.clientX-e.offsetX:" + (e.clientX-e.offsetX);
            }
        }
        function down(e)
        {
            flag=true;
            if(e.offsetX)
            {
                x_start=e.offsetX;
                y_start=e.offsetY;
            }
            else
            {
                x_start=e.clientX - top.leftFrame.document.width;
                y_start=e.clientY - top.topFrame.document.height;        
            }
            var obj=document.getElementById("toolbar");
            obj.style.cursor = "move";
            
        }
        function up()
        {
            flag = false;
            x_start=0;
            y_start=0;
            var obj=document.getElementById("toolbar");
            obj.style.cursor = "pointer"; 
        }
        function MM_showHideLayers(id,v,param,e) { //v6.0
          var obj = document.getElementById(id);
          if(e)
          {
            obj.style.left = parseInt(document.documentElement.clientWidth/2-150) + "px";
            obj.style.top = parseInt(document.documentElement.clientHeight/2-150 ) + "px";
          }
          if(obj)
          {
            if(v)
            {
                obj.style.display="block";
                document.getElementById("wintitle").innerHTML="业务详情";
                if(document.getElementById("ifContent")!=null)
                document.getElementById("ifContent").src="ShowDetail.aspx?id="+param;
            }
            else
            {
                ifContent.document.write("请稍候,数据正在载入中");   
                ifContent.document.close();         
                //document.frames["ifContent"].document.write("请稍候,数据正在载入中");
                obj.style.display="none";
                document.getElementById("ifContent").setAttribute("height","220");
                
            }
          }
        }   
        </script>调用showHideLayers函数来显示
    里面关于firefox下,浮动的代码还没写好。在IE下没问题
      

  6.   

    div里嵌套iframe,这个方法可以。不会刷新页面
    你去下个jquery库,在下个thickbox,即可实现。
      

  7.   

    可以在div中用iframe來顯示新窗口頁面,再控制iframe是否顯示頁面.代碼如下:
    主頁面<html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>未命名頁面</title>
        <script type="text/javascript" language="javascript">
        function ShowPage()
        {
            document.getElementById('iframe1').style.display = 'block';
            window.event.returnValue=false;
        }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <asp:LinkButton ID="LinkButton1" OnClientClick="ShowPage()" runat="server">ShowPage</asp:LinkButton>
        <div id="div1">
        <iframe id="iframe1" src="popPage.aspx" style="height:600px;width:750px;display:none;"></iframe>
        </div>
        </form>
    </body>
    </html>
    新窗口頁面<html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>未命名頁面</title>
        <script type="text/javascript" language="javascript">
        function ClosePage()
        {
           window.parent.document.getElementById('iframe1').style.display="none";
        }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <img src="Image/P2P_1.jpg" onclick="ClosePage()" style="cursor: hand" />
        </div>
        </form>
    </body>
    </html>
      

  8.   

    5楼的兄弟,这个不用设z-index吗?
    如果不显示的时候应该没问题,但是如果现实的时候,不设置z-index到底这个div和其他元素谁会显示出来
    我是需要这个div盖过其他东西的
      

  9.   


    如果后面的层不是顺序输出,而是设置了z-index的话,那你就给它随便设置个比较大的就可 了。如果后面的层是顺序输出,没有设置z-index的话,就这样就OK。这是我从我项目中直接复制出来的,一直没问题的。
      

  10.   

    document.getElementById('id').innerHTML="this is test";
      

  11.   

    你首先把div显示的脚本写出来,然后把要动态显示的值当作参数,写成一个脚本function在绑定repeater的时候,在row绑定的时候,给linkbutton.Attributes.Add("onclick", "javascript:方法;");这样就可以解决你的动态div的问题
      

  12.   

    div 里 放 iframe 
      

  13.   

    补遗:
    clientX 设置或获取鼠标指针位置相对于窗口客户区域的 x 坐标,其中客户区域不包括窗口自身的控件和滚动条。 
    clientY 设置或获取鼠标指针位置相对于窗口客户区域的 y 坐标,其中客户区域不包括窗口自身的控件和滚动条。 
    offsetX 设置或获取鼠标指针位置相对于触发事件的对象的 x 坐标。 
    offsetY 设置或获取鼠标指针位置相对于触发事件的对象的 y 坐标。 
    screenX 设置或获取获取鼠标指针位置相对于用户屏幕的 x 坐标。 
    screenY 设置或获取鼠标指针位置相对于用户屏幕的 y 坐标。 
    x 设置或获取鼠标指针位置相对于父文档的 x 像素坐标。 
    y 设置或获取鼠标指针位置相对于父文档的 y 像素坐标。