さて、私は恥ずかしいほど単純な質問がありますが、うまくいけば恥ずかしいほど単純な答えがあります。asp:ImageButtonを取得して、コードビハインドの変数を含むアラートメッセージを表示しようとしています。コードの過度に単純化されたバージョンは次のとおりです。
public string AlertMe
{
get
{
return "alert('hi');";
}
}
この方法でアクセスしようとすると、次のようになります。
<asp:ImageButton ID="btn" runat="server" ImageUrl="/Images/img.ico" OnClientClick='<%=AlertMe%>'/>
ポストバックが表示されますが、プロパティにまったくアクセスできないかのようにアラートメッセージが表示されません。一方、これらの2行:
<%=AlertMe%><br />
<a onclick="<%=AlertMe%>">click this</a>
どちらもうまく機能し、ダンディです。(1つ目はjavascriptアラートのコードを表示し、2つ目は問題なくアラートを発生させます。)
だから私の大きな質問は:なぜaspコントロールのOnClientClickイベントがアラートの登録に失敗するのですか?私が見逃している明らかな欠陥がありますか、それともコードビハインドからイベント全体を登録する必要がありますか?