2011-07-26 9 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.End()....を入れようとしました。 – 2GDev

答えて

2

文字列内の一部の文字(一重引用符、二重引用符)をエスケープする必要があります。これで試してください:

Response.Write("<script type=\"text/javascript\">") 
Response.Write("window.open(\'Label.aspx?ID=" + RadGrid1.SelectedValues["PackageID"].ToString() + "\',\'_blank\')"); 
Response.Write("</script>"); 
関連する問題