2011-07-26 58 views
0

我有以下代码来响应RadToolBar上的单击命令。开关部分工作正常。我遇到麻烦的地方是在一个新的浏览器窗口中打开label.aspx?id = foo的Response.Write部分。 label.aspx页面是生成并提供PDF的简单页面。我认为我写的代码大多是正确的。不过,我一定错过了一些关键部分,因为当我运行应用程序并单击工具栏按钮时,什么也没有发生。由于开关片工作正常,label.aspx页面也是如此,所以问题在这里Response.Write("<script type='text/javascript'>window.open('Label.aspx?ID=" + RadGrid1.SelectedValues["PackageID"].ToString() + "','_blank');</script>");任何想法?问题使用Response.Write传递javascript,打开新的浏览器窗口

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; 
    } 

还有其他几个类似的问题。我已经看了他们所有的东西,他们似乎推荐了我以上采用的相同方法。但是,我的代码仍然不起作用。

+2

你在视图源中看到了什么? – Mrchief

+0

我没有看到任何提及的label.aspx页面。但是,我不期望。 Response.Write仅在存在包含相关命令的回发时调用。 – hughesdan

+0

Response.Write尝试把Response.End().... – 2GDev

回答

2

您必须转义字符串中的某些字符(单引号,双引号)。请试试这个:

Response.Write("<script type=\"text/javascript\">") 
Response.Write("window.open(\'Label.aspx?ID=" + RadGrid1.SelectedValues["PackageID"].ToString() + "\',\'_blank\')"); 
Response.Write("</script>"); 
相关问题