如何在后面的代码中从Dropdown中选择项目时在新选项卡中打开页面

时间:2011-08-02 12:19:37

标签: asp.net drop-down-menu

我正在下载一些从数据库绑定的值。当我选择一个特定的选项时,我会在新标签中打开相应的页面,我写下以下哪个不起作用,所以任何人都可以帮助我

protected void ddlAuthoritytype_SelectedIndexChanged(object sender, EventArgs e)
{
string ddl = ddlAuthoritytype.SelectedValue;
switch (ddl)
{
  case "AL":
  Response.Write("<script>Window.Open('alabama-state-tax-calculator.aspx');</script>");`
}
}

3 个答案:

答案 0 :(得分:2)

您应该使用以下脚本:

<script type="text/JavaScript">
<!--

function openWindowFromDropDownList(theURL,winName,features)

{ 

var SID = document.forms[0].dropdownlist1.value
if (SID > 0){
theURL = theURL + document.forms[0].dropdownlist1.value
    var newWin = window.open(theURL,winName,features);
    newWin.opener = self;
  }
}
//-->
</script>

答案 1 :(得分:2)

使用此:

protected void ddlAuthoritytype_SelectedIndexChanged(object sender, EventArgs e)
{
    var port = Request.Url.IsDefaultPort ? "" : ":" + Request.Url.Port.ToString();

    string ddl = ddlAuthoritytype.SelectedValue;
    switch (ddl)
    {
        case "AL":
            var script = string.Format("window.open('{0}://{1}{2}{3}')", Request.Url.Scheme, Request.Url.Host, port, ResolveUrl("~/alabama-state-tax-calculator.aspx"));
            ScriptManager.RegisterStartupScript(this, this.GetType(), "newWindow",script, true);
            break;
    }
}

答案 2 :(得分:0)

所以你想要一个回发并在服务器上处理更改吗? ddlAuthoritytype是否设置了autopostback属性?

您是否尝试在交换机中执行Response.Redirect而不是注入脚本?

编辑:啊,错过了新的标签部分,现在我看到了脚本的原因。