ありがとうございましたこの質問には多くのことがあり、それを実装する方法はたくさんあります。ここでは、これをどうやって行うことができるかの概略を示します。私はあなたがJQueryを使用していると仮定しています。
それぞれにイベントをクリックして添付し、クリック時に行またはセルをハイライト表示するには:もちろん
$("tr").click(function() { $(this).css('background', 'yellow'); });
$("td").click(function() { $(this).css('background', 'lightblue'); });
、あなたは非ハイライト彼らにも必要になりますが、私たちはその瞬間にそれに来ます。
行のデータを取得するには(クライアントではなくサーバー上で行うことを前提としています)、AJAX呼び出しを行う必要があります。行全体を戻すのではなく、行のIDを取得するのが最も簡単です。クリックイベント内でこのような何か:
var row_id = $(this).closest("tr").find("input[type=hidden]").attr("value");
$.get("?row_id=" + row_id);
これは、あなたがその行のID値を使用してWebGridのに各行に隠し入力を追加していることを前提としています。
はあなたがクリック機能内でこれを使用することができます選択した最初の行のセルにアクセスする必要がある場合:
var cellOne = this.cells[0].innerHTML ;
また、私は(あなたのクリック機能のみを特定のテーブルにリンクされなければならないことをお勧めしますそれ以外の選択すべてのtr要素で有効になります)、選択が変更されたときに追加および削除されるcssクラスを使用します。
$('#MainTable tr').click(function() {
$(this).addClass('select');
$('#MainTable tr').not(this).removeClass('select');
});
は上に移動するには、下には、ウィンドウに「からkeyup」イベントリスナを追加することができますし、アップ/ダウン扱います。詳細はこちらをご覧ください:jQuery kepress detection on left, right arrows and space bar Javascriptを使用して、現在選択されている行を追跡して、必要に応じてハイライト/ハイライトを解除する必要があります。
最後に、ユーザーが別の行をクリックまたは矢印キーを押したときにAJAX呼び出し(またはJavascript呼び出し)をトリガーすることができます。
$.get("?event=row_selection_changed&row_id=" + row_id);