asp.net页面跳转打开新窗口
我的代码如下,我不知道为什么不在新窗口打开,请高手帮忙,非常感谢:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" %>
<!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">
<div>
<asp:DropDownList ID="DropDownList1" runat="server" DataTextField="link_name" DataValueField="link_name" OnSelectedIndexChanged="change" AutoPostBack="True">
</asp:DropDownList>
</div>
</form>
</body>
</html>
CS代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using comm;
public partial class Default3 : System.Web.UI.Page
{
comm_comm comm_link = new comm_comm();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string str = "select * from link order by link_id desc";
comm_link.dr_Bind(str, DropDownList1);
}
}
protected void change(object sender, EventArgs e)
{
Response.Write("<script language='javascript'>window.open('"+DropDownList1.SelectedValue+"','_blank');</script>");
}
} 展开
改为:
Response.Write("<script language='javascript'>window.open(\""+DropDownList1.SelectedValue+"\",\"_blank\");</script>");
试试看。。
在javascript中'和"是有区别的 有些地方不能通用
还有 像你这样功能的实现,尽量统一在客户端完成,比如给DropDownList Attribute一个onchange脚本事件 这样既减少服务器压力,又给用户带来好的体验。。
我发段代码给你.
<select name="selFrnd2" id="selFrnd2" onChange="gofrnd('selFrnd2')">
<option selected="selected" value="0">——友情链接——</option>
<option value="http://www.baidu.com/">百度</option>
<option value="http://www.163.com">网易</option>
<option value="http://www.sina.com.cn">新浪</option>
</select>
<SCRIPT>
function gofrnd(o)
{
var fObj = document.all.item(o);
if(fObj==null)
return;
var fl = fObj.options[fObj.selectedIndex].value;
if(fl!='0')
{
fl= fl;
window.open(fl);
}
}
</SCRIPT>
你可以用DropDownList在PAGE_LOAD里加入this.DropDownList1.Attributes.Add("onchange","gofrnd('DropDownList1');");就OK了.
ASP.NET打开新窗口方法一:
Response.Write("<script language=\"javascript\">window.open('aaa.aspx','新窗口,\"toolbar=yes,location=no,directories=yes,status=yes,menubar=yes,resizable=yes,scrollbars=yes\");</script>");
这种方式代码每次是生成在页面最顶端
ASP.NET打开新窗口方法二:
string strScript = "";
strScript += "<script language=\"javascript\">\n";
strScript += "window.open('aaa.aspx','新窗口,\"toolbar=yes,location=no,directories=yes,status=yes,menubar=yes,resizable=yes,scrollbars=yes\");\n";
strScript += "location.href='index.html';";
strScript += "</script>";
bool b = ((Page)System.Web.HttpContext.Current.Handler).IsStartupScriptRegistered("PopUp");
if (!b)
{ ((Page)System.Web.HttpContext.Current.Handler).RegisterStartupScript("PopUp",strScript);
}
这种方式是在页面中生成JAVASCRIPT代码
注意:如果输出JAVSSCRIPT语句后,页面又用Response.Redirect跳转到其他页,JAVASCRIPT将不会出现.实现弹出窗口和跳转同时必须都在JAVASCRIPT语句里,
定义DropDownList onClick事件。
然后 Response.Redirect