08/06/24 22:55:44
Attributes.Addよりも>>642が教えてくれたように
OnClientClickプロパティにJavaScript書く方がスマートだね。
で,ちょっと実験してみたけどAttributes.AddでもOnClientClickでも
確かに&にエンコードされる。
けどどちらにしてもtypeの値は正しく取得できたよ?
以下,テストに使ったコードのサンプル
(インデントは全角スペースに置換したため注意)
protected void Page_Load(object sender, EventArgs e)
{
//以下の2行はどっちでも同じHTMLを出力される
//Button1.Attributes.Add("onclick", "window.open('Default.aspx?id=0&type=test');");
Button1.OnClientClick = "window.open('Default.aspx?id=0&type=test');";
//GETパラメータの全てのキーと値をタイトルに設定
foreach (string key in Page.Request.QueryString.Keys)
{
Page.Title += ":" + key + "=" + Page.Request.QueryString.Get(key);
}
}
ボタン(Button1)一個貼り付けて実行してみればわかるかと。