我有以下代码来响应RadToolBar上的click命令。开关部分工作正常。我遇到问题的地方是使用Response.Write片段打算在新的浏览器窗口中打开label.aspx?id = foo。 label.aspx页面是一个生成和提供PDF的简单页面。我认为我写的代码大多是正确的。但是我一定错过了一些关键部分,因为当我运行应用程序并单击工具栏按钮时没有任何反应。由于交换件工作正常,label.aspx页面也正常工作,问题就出在这一行Response.Write("<script type='text/javascript'>window.open('Label.aspx?ID=" + RadGrid1.SelectedValues["PackageID"].ToString() + "','_blank');</script>");
有什么想法吗?
protected void RadToolBar1_ButtonClick(object sender, RadToolBarEventArgs e)
{
switch (e.Item.Text)
{
case "Print Label":
Response.Write("<script type='text/javascript'>window.open('Label.aspx?ID=" + RadGrid1.SelectedValues["PackageID"].ToString() + "','_blank');</script>");
break;
case "Request Return":
//do something
break;
case "Remove":
//do something;
break;
}
还有其他几个类似的问题。我看了他们所有人,他们似乎推荐了与我上面采用的相同的方法。但是,我的代码仍无效。
答案 0 :(得分:2)
你必须在字符串中转义一些字符(单引号,双引号)。请试试这个:
Response.Write("<script type=\"text/javascript\">")
Response.Write("window.open(\'Label.aspx?ID=" + RadGrid1.SelectedValues["PackageID"].ToString() + "\',\'_blank\')");
Response.Write("</script>");