2011-07-26 69 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>"); 
相關問題