トップ回答者
JavaScriptを使用しないでGridViewの行をダブルクリックした際にイベントを発生させる事はできますか。

質問
回答
-
> JavaScriptを使用しないでGridViewの行をダブルクリックした際に
> イベントを発生させる事はできますか。前提条件が「JavaScriptを使用しない」ということですから、当然、
イベントというのはサーバー側の ASP.NET Web アプリケーションの
プログラムで発生するものですよね?であれば、自分の知る限りですが、ASP.NET のサーバーコントロール
にはそのような機能はないと思います。
Windows アプリと Web アプリの違いを理解されているでしょうか?GridView は Windows アプリの DataGridView とは違います。
GridView がサーバー側で html にレンダリングされブラウザに送信
されますが、それは table, tr, th, td 要素で、それをクリックし
ても何も起こらないことは分かります? 「JavaScriptを使用しな
い」のですから。Button 等を GridView 内に配置して、それをクリックしてポストバ
ックし、サーバー側でイベントを発生させることはできますが、ダブ
ルクリックかどうかの判定はできません。- 回答としてマーク COBE1972 2010年12月3日 6:22
すべての返信
-
> JavaScriptを使用しないでGridViewの行をダブルクリックした際に
> イベントを発生させる事はできますか。前提条件が「JavaScriptを使用しない」ということですから、当然、
イベントというのはサーバー側の ASP.NET Web アプリケーションの
プログラムで発生するものですよね?であれば、自分の知る限りですが、ASP.NET のサーバーコントロール
にはそのような機能はないと思います。
Windows アプリと Web アプリの違いを理解されているでしょうか?GridView は Windows アプリの DataGridView とは違います。
GridView がサーバー側で html にレンダリングされブラウザに送信
されますが、それは table, tr, th, td 要素で、それをクリックし
ても何も起こらないことは分かります? 「JavaScriptを使用しな
い」のですから。Button 等を GridView 内に配置して、それをクリックしてポストバ
ックし、サーバー側でイベントを発生させることはできますが、ダブ
ルクリックかどうかの判定はできません。- 回答としてマーク COBE1972 2010年12月3日 6:22
-
>的外れな質問なんでしょうか。
Server側で処理されるコントロールなので、そもそもクライアントでどのような操作が行われたか判断することができません。
あくまで、リンクやSubmitボタンでPOSTやGETが来た時にそれを判断する程度のことしかできません。
クライアント側の操作をカスタマイズするのであれば、クライアント側でスクリプトを仕込むことが常道かと思われます。
そのことは、下記のイベント一覧見ても明らかです。
しかし、「ない」とか「的外れ」であることを証明するのは大変なので、なかなか回答がつかないんだと思います。「GridView イベント (System.Web.UI.WebControls)」
http://msdn.microsoft.com/ja-jp/library/system.web.ui.webcontrols.gridview_events.aspx>できる、できないだけでも構いませんので宜しくお願いします。
System.Web.UI.WebControls.GridView を使って、当該の動作をクライアントスクリプトなしで実施するのは「できない」と言ってしまいたいのですが、
本当にできないの?となると、自分でGridViewのソースのぞいてカスタムコントロールつくって無理やりクライアントスクリプト仕込むようなカスタムコントロール作るとか、
IEとかブラウザ自体の動作を変更するようなBHOのようなプログラムを別途仕込んでダブルクリックがあればサーバ側に送信するとか、
あまり現実的ではないような方法でも「できない」とは言えないため、「できない」という回答はなかなか付かないと思います。
#できることを証明するのは、実際にやってみるとか、誰かやった資料を紹介すればOKですが、
#できないことを証明するのは「できない」前提を相当厳密に定義しないと厳しいです。
#その気になればプレミアサポートなどに入って、数千万から積んでMS社に依頼出すとか、メチャな方法で実現できるかもしれません。「Visual Studio 2005 によるブラウザ ヘルパ オブジェクトのビルド」
http://msdn.microsoft.com/ja-jp/library/bb250489(VS.85).aspxSurferOnWwwさんの繰り返し見たいになってしまいすいません
-
JavaScript を使用できない理由が気になりました。
それも書かれると、何か情報が得られるかもしれませんよ(私にはないのですけど。。)。
(追記:無効にしてる人への対応、ですかね。それ以外たぶんなさそうですね。)
それと「ダブルクリック時」ではなくなりますが、代替案としては行セレクタ用のリンクを用いるのではダメでしょうか? よくあるのは「選択」というリンクです。
同様に、たとえば現状の一覧に「製品名」が表示されている場合、それをリンクにしておくと、製品名をクリックした際にその製品の詳細ページに遷移したりできます。
(さらに追記:かぶらない内容を返信したつもりでしたが、
すでに SurferOnWww さんが GridView 内に Button 等を含めると書かれてますし、佐祐理さんの「素のHTMLでどのように記述すれば」のことなので、結局、私の返信も繰り返しになっちゃってることに今気付きました。)- 編集済み TH01 2010年12月1日 6:43 さらに追記