none
求助:为何模式窗口关不了? RRS feed

  • 问题

  • 1.aspx中的按钮打开模式窗口2.aspx
    但2.aspx中的确定按钮关不了自个儿,反而打开了一个新窗口
    1.aspx:

    <%@ Page Language="VB" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <script runat="server">
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
            Button1.Attributes.Add("onclick", "openwindow();")
        End Sub
    </script>

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>无标题页</title>
    </head>
    <script type="text/javascript">
    function openwindow(){
      window.showModalDialog("2.aspx","","dialogHeight:260px;dialogWidth:500px;center=yes;help=no;status=no");
    }
    </script>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:Button ID="Button1" runat="server" Text="Button" />
        </div>
        </form>
    </body>
    </html>


    2.aspx:

    <%@ Page Language="VB" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <script runat="server">
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
            Button1.Attributes.Add("onclick", "return chkvalue();")
        End Sub
    </script>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>无标题页</title>
    </head>
    <script type="text/javascript">
    function chkvalue(){
    if (document.getElementById("TextBox1").value=="")
    {
      alert("参数不足!请在文本框中输入一个字符");
      return false;}
      window.close();
    }
    </script>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <asp:Button ID="Button1" runat="server" Text="确定" />
        </div>
        </form>
    </body>
    </html>

    2009年4月13日 12:57

答案

  • 你需要这么写2.aspx:
    <head runat="server">
        <title>无标题页</title>
        <base target="_self"/>
    </head>


    孟宪会
    2009年4月13日 14:33
    版主
  • 这种情况下,建议不要使用Web控件Button,使用一般的<input type=button>这样的button就好。因为没有必要提交到服务器。
    类似这样:
    <input type=button onclick="chkvalue()" value="确定" />
    如果一定要用Web控件Button,可以这样避免提交动作。
    <asp:Button ID="Button1" runat="server" Text="确定" OnClientClick="chkvalue();" />
    修改你的chkvalue方法:
    <script type="text/javascript">
    function chkvalue(){
    if (document.getElementById("TextBox1").value=="")
    {
      alert("参数不足!请在文本框中输入一个字符");
      event.returnValue = false;
      return false;}
      window.close();
    }
    </script>



    理解的越多,需要记忆的就越少
    2009年4月13日 13:51
    版主

全部回复

  • 这种情况下,建议不要使用Web控件Button,使用一般的<input type=button>这样的button就好。因为没有必要提交到服务器。
    类似这样:
    <input type=button onclick="chkvalue()" value="确定" />
    如果一定要用Web控件Button,可以这样避免提交动作。
    <asp:Button ID="Button1" runat="server" Text="确定" OnClientClick="chkvalue();" />
    修改你的chkvalue方法:
    <script type="text/javascript">
    function chkvalue(){
    if (document.getElementById("TextBox1").value=="")
    {
      alert("参数不足!请在文本框中输入一个字符");
      event.returnValue = false;
      return false;}
      window.close();
    }
    </script>



    理解的越多,需要记忆的就越少
    2009年4月13日 13:51
    版主
  • 你需要这么写2.aspx:
    <head runat="server">
        <title>无标题页</title>
        <base target="_self"/>
    </head>


    孟宪会
    2009年4月13日 14:33
    版主


  • 谢谢二位的回复,问题解决了.

    特别感谢孟版,有问必答令人敬佩.
    2009年4月14日 4:14