グリッドビューの行をクリック可能にしようとしています。これにより、ポストバックが発生し、コード ビハインドを実行できるようになります。
これは、GridView の RowDataBound イベント ハンドラーに含まれています。これは機能します:
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes["onmouseover"] = "this.style.cursor='pointer';this.style.textDecoration='underline';";
e.Row.Attributes["onmouseout"] = "this.style.textDecoration='none';";
e.Row.Attributes["onclick"] = "javascript:__doPostBack('PostBackFromItemWindow', '');";
}
しかし、これは機能しません:
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes["onmouseover"] = "this.style.cursor='pointer';this.style.textDecoration='underline';";
e.Row.Attributes["onmouseout"] = "this.style.textDecoration='none';";
e.Row.Attributes["onclick"] = "<script type='text/javascript'>__doPostBack('PostBackFromItemWindow', '');</script>";
}
質問:
- 前者は機能するのに、後者は機能しないのはなぜですか?
- このタスクを達成しようとする (javascript からコード ビハインドを呼び出す) 際に、これを行う代替方法はありますか? 私はいくつかの読書をして、WebMethods() に出くわしましたが、最終的には、動作するために静的である必要があるという事実が気に入らなかったのです。上記は実際に必要な機能を正確に提供します。それが許容できる方法であることを確認したいだけです(つまり、非推奨などではありません)。この時点で。