あなたがやっていることはうまくいくはずです。あなたが持っている問題は、 'Attributes.Add'がjavascriptにHTMLエンコードをさせることです。これは、ASP.NET固有のコントロールを使用していないためです。あなたのonclick
はとしてレンダリングされます。これを回避するには
onclick="window.location='MyUrl'"
私はHTMLになります任意の変な文字を排除するための機能で、私はこのようにNON ASP.NETコントロールに、追加したい任意のJavaScriptを配置コード化される。例:
Javascriptを:
function redirect(address) {
window.location = 'http://' + address;
}
ASPX:背後
<div id="divTesting" runat="server">
Testing
</div>
コード:
divTesting.Attributes.Add("onclick", "redirect('www.microsoft.com');");
これは、あなたがrunat='server'
タグを追加するHTMLコントロールの唯一の問題ですそれらのサーバー側にアクセスします。 div
をasp:Panel
に切り替えると、Attribute.Add
にHTMLエンコードが行われず、プロキシのJavaScript機能を使用せずに、そこに必要なものを置くことができます。これは一種の厄介な「機能」ですが、意図されていると思われます。
これをチェックしたいことがあります[他の回答](http://stackoverflow.com/questions/5463519/how-can-i-add-a-click-event-to-my-div-from-code-behind/5463537#5463537)を参照してください。 (それがうまくいかない場合は、他の何かが間違っていて、関連コードを投稿したいかもしれません)。 –