none
javascript弹出链接问题? RRS feed

答案

  • 你好!

    SysUtility.GetLinkUrl 是你自己写的方法吧,修改这个方法的代码,以达到返回你需要的字符串。

    知识改变命运,奋斗成就人生!
    2009年12月7日 4:48
    版主
  • 服务端:Response.Redirect
    客户端:window.location.href = "http://localhost:4266/Container.aspx?ClassName=StorageManage.Box.PBoxing&ID=47&IsPop=1";

    知识改变命运,奋斗成就人生!
    2009年12月7日 6:09
    版主
  • 你是调用了 window.close() 吧,去掉它试试。
    知识改变命运,奋斗成就人生!
    2009年12月7日 6:48
    版主
  • if (ViewState["ID"] != null)
    {
        Busi.Box box = new Busi.Box((int)(ViewState["ID"]));
        hlParentCell.NavigateUrl = @"../Cell/CellView.aspx?CellID=" + box.FK_CellID;
        hlParentCell.Visible = true;
    }

    有了上面的代码,在界面上就不需要设置 NavigateUrl 了。你但要确定上面的代码已执行。

    知识改变命运,奋斗成就人生!
    2009年12月7日 8:57
    版主
  • JS 是可以的,但这样的问题在服务端就可以处理了。JS 方式如下:

    <%@ Page Language="C#" AutoEventWireup="true" %>
    <script runat="server">
        public String FK_CellID
        {
            get { return Guid.NewGuid().ToString(); } 
        }
    </script>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <script>
            var cellId = "<%=FK_CellID%>";
            function Go()
            {
                window.location.href = "default.aspx?Id=" + cellId;
            }
        </script>
        <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="javascript:Go();">HyperLink</asp:HyperLink>
        </form>
    </body>
    </html>
    


    知识改变命运,奋斗成就人生!
    2009年12月8日 2:23
    版主
  •  public String FK_CellID
        {
            get { return Guid.NewGuid().ToString();} // 改为你原来的返回方式。
        }

    知识改变命运,奋斗成就人生!
    2009年12月8日 3:18
    版主
  • 这个问题是由于 ViewState["ID"] 不存在或还未设置,改成下面的代码。

    public int FK_CellID
        {
            get 
            {
        if (ViewState["ID"] == null) return 0;
                Busi.Box box=new Busi.Box((int)(ViewState["ID"]));
                return box.FK_CellID;
            } 
        }

    知识改变命运,奋斗成就人生!
    2009年12月8日 3:35
    版主
  • 你要在使用之前去设置 ViewState["ID"] 呀,不设置怎么会有呢
    知识改变命运,奋斗成就人生!
    2009年12月8日 4:25
    版主

全部回复

  • 你好!

    SysUtility.GetLinkUrl 是你自己写的方法吧,修改这个方法的代码,以达到返回你需要的字符串。

    知识改变命运,奋斗成就人生!
    2009年12月7日 4:48
    版主
  • 你好!谢谢!

       那我不想用ShowDialog了,我想要在原页面跳转的话,那么用Location要怎么写呢?
       谢谢哦!



         
    只要有信心!就没有什么不可以!
    2009年12月7日 6:08
  • 服务端:Response.Redirect
    客户端:window.location.href = "http://localhost:4266/Container.aspx?ClassName=StorageManage.Box.PBoxing&ID=47&IsPop=1";

    知识改变命运,奋斗成就人生!
    2009年12月7日 6:09
    版主
  • 谢谢!
    我用的是
    window.location.href = “http://localhost:4266/Container.aspx?ClassName=StorageManage.Box.PBoxing&ID=47&IsPop=1;”

    可是弹出一个 你查看网页正在试图关闭窗口,点击否就跳到空白页了?
    只要有信心!就没有什么不可以!
    2009年12月7日 6:45
  • 你是调用了 window.close() 吧,去掉它试试。
    知识改变命运,奋斗成就人生!
    2009年12月7日 6:48
    版主
  • 谢谢!
            private void Layout()
            {
              if (ViewState["ID"] != null)
             {
                    Busi.Box box = new Busi.Box((int)(ViewState["ID"]));
                    hlParentCell.NavigateUrl = @"../Cell/CellView.aspx?CellID=" + box.FK_CellID;
                    hlParentCell.Visible = true;
                }
            }
        我想把这个hlParentCell.NavigateUrl = @"../Cell/CellView.aspx?CellID=" + box.FK_CellID;写到客户端去
    <cc1:FSHyperLink ID="hlParentCell" runat="server" Visible="true" Text="返回上一级" NavigateUrl='~/StorageManage/Cell/CellView.aspx?CellId=<%= FK_CellID) %>'> 

    可是怎么才能把上面的box.FK_CellID传过去啊?谢谢额!


    只要有信心!就没有什么不可以!
    2009年12月7日 8:53
  • if (ViewState["ID"] != null)
    {
        Busi.Box box = new Busi.Box((int)(ViewState["ID"]));
        hlParentCell.NavigateUrl = @"../Cell/CellView.aspx?CellID=" + box.FK_CellID;
        hlParentCell.Visible = true;
    }

    有了上面的代码,在界面上就不需要设置 NavigateUrl 了。你但要确定上面的代码已执行。

    知识改变命运,奋斗成就人生!
    2009年12月7日 8:57
    版主
  • 你好!
           就是因为我上面的代码失效了,必须在客户端写才行!要怎么传ID呢?
        
    只要有信心!就没有什么不可以!
    2009年12月7日 9:03
  • 试试

    NavigateUrl='~/StorageManage/Cell/CellView.aspx?CellId=<%= new Busi.Box((int)(ViewState["ID"])). FK_CellID %>'

    另外失效的问题,你可以跟踪一下,

    知识改变命运,奋斗成就人生!
    2009年12月7日 9:06
    版主
  • 还是不可以啊!提示“服务器标记格式不正确”这个解决了!
    失效是因为我用的是自定义控件的问题!在服务端是没有办法的!


    ID还是传不过去啊?
    只要有信心!就没有什么不可以!
    2009年12月7日 9:11
  • 传过去的URL地址是这样的
    http://localhost:4266/StorageManage/Cell/CellView.aspx?CellId=<%=%20Busi.Box((int)(ViewState["ID"])).%20FK_CellID%20%>


    ID并没有传过去?要怎么解决呢!谢谢!
    只要有信心!就没有什么不可以!
    2009年12月7日 9:23
  • 这里最好在服务端处理。服务端处理是可行的。

    // 看看以下代码是否被正确的调用 了。
    if (ViewState["ID"] != null) // 看看 ViewState["ID"] 是否为 NULL
    {
        Busi.Box box = new Busi.Box((int)(ViewState["ID"]));
        hlParentCell.NavigateUrl = @"../Cell/CellView.aspx?CellID=" + box.FK_CellID;
        hlParentCell.Visible = true; // 这里为什么要隐藏呢?
    }

    知识改变命运,奋斗成就人生!
    2009年12月8日 2:03
    版主
  • 你好!
          因为我的hyperlink控件放在了web用户控件里面了,无法继承System.Web.ui.page类,因为我的控件全部是自定义控件,所以在这个地方隐藏,用到它的时候可以再客户端设置!

          现在的难题就是这么传ID,我不知道可不可以实现?
       
    只要有信心!就没有什么不可以!
    2009年12月8日 2:10
  • JS 是可以的,但这样的问题在服务端就可以处理了。JS 方式如下:

    <%@ Page Language="C#" AutoEventWireup="true" %>
    <script runat="server">
        public String FK_CellID
        {
            get { return Guid.NewGuid().ToString(); } 
        }
    </script>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <script>
            var cellId = "<%=FK_CellID%>";
            function Go()
            {
                window.location.href = "default.aspx?Id=" + cellId;
            }
        </script>
        <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="javascript:Go();">HyperLink</asp:HyperLink>
        </form>
    </body>
    </html>
    


    知识改变命运,奋斗成就人生!
    2009年12月8日 2:23
    版主
  • 谢谢!
      可是还是不行
      http://localhost:4266/StorageManage/Cell/CellView.aspx?CellID=13b42f14-5a02-4abc-9709-f9d789225822显示空白了!
    只要有信心!就没有什么不可以!
    2009年12月8日 3:05
  • 这里只是给你做了一个示例。你要配合的你程序修改才行。比如你的 CellId 应该是一个整形,比如 1 或 2.
    知识改变命运,奋斗成就人生!
    2009年12月8日 3:11
    版主
  • 你好!我是这样写的,麻烦你了!谢谢!



    <script runat="server"> public String FK_CellID { get { return Guid.NewGuid().ToString();} } </script> <script> var cellId="<%=FK_CellID %>"; function GO() { window.location.href="StorageManage/Cell/CellView.aspx?CellID="+cellId; } </script> <div> <div> <cc1:FSHyperLink ID="hlParentCell" runat="server" Visible="true" Text="返回上一级" NavigateUrl="javascript:GO();"></cc1:FSHyperLink> </div> <div id="gridview"> <cc1:FSGridView ID="FSGridView1" runat="server" DataKeyNames="ID" AllowRowClick="false" PageType="InteriorPage" AutoGenerateColumns="False" ShowCheckBox="true" AllowPaging="True"> <Columns> <asp:BoundField DataField="ID" HeaderText="卷件ID" /> <asp:BoundField DataField="Title" HeaderText="卷件中文名称" /> <asp:BoundField DataField="OtherTitle" HeaderText="卷件英文名称" /> <asp:BoundField DataField="SubTitle" HeaderText="其他名称" /> </Columns> </cc1:FSGridView> </div> </div>

    只要有信心!就没有什么不可以!
    2009年12月8日 3:15
  •  public String FK_CellID
        {
            get { return Guid.NewGuid().ToString();} // 改为你原来的返回方式。
        }

    知识改变命运,奋斗成就人生!
    2009年12月8日 3:18
    版主
  • 谢谢!
    我写成这样,提示未将对象引用到实例
     public int FK_CellID
        {
            get
            {
                Busi.Box box=new Busi.Box((int)(ViewState["ID"]));
                return box.FK_CellID;
            }
        }
    ViewState是不是不可这样写啊?
    只要有信心!就没有什么不可以!
    2009年12月8日 3:31
  • 这个问题是由于 ViewState["ID"] 不存在或还未设置,改成下面的代码。

    public int FK_CellID
        {
            get 
            {
        if (ViewState["ID"] == null) return 0;
                Busi.Box box=new Busi.Box((int)(ViewState["ID"]));
                return box.FK_CellID;
            } 
        }

    知识改变命运,奋斗成就人生!
    2009年12月8日 3:35
    版主
  • 谢谢!
        改完以后返回的ID全是0!
    只要有信心!就没有什么不可以!
    2009年12月8日 4:23
  • 你要在使用之前去设置 ViewState["ID"] 呀,不设置怎么会有呢
    知识改变命运,奋斗成就人生!
    2009年12月8日 4:25
    版主
  • 嘿嘿····
       怎么设置啊?
    只要有信心!就没有什么不可以!
    2009年12月8日 4:27
  • 比如 

    Busi.Box box=new Busi.Box(1);
    ViewState["ID"]  = box。


    建议你了解一下 asp.net 的一些基础知识。

    知识改变命运,奋斗成就人生!
    2009年12月8日 4:30
    版主
  • 谢谢!
         我会的!
    只要有信心!就没有什么不可以!
    2009年12月8日 4:31