2009-09-02 8 views
1

私のアプリケーションは、aspxページのハイパーリンクを使用して電子メールをユーザーに送信します。取得文字列にはGUIDがあります。 aspxページには、複数のページにまたがって行があるグリッドビューが表示されます。 私の要件は、リンクがクリックされたときにユーザーが適切なページに誘導され、guidへのマッピングが行が強調表示されるはずです。グリッドビューで行をハイライト表示する方法は?

助けてください、その緊急。

+0

グリッドには何が挿入されていますか?あなたのビジネスオブジェクト?データベースへの直接クエリ? – balexandre

+0

グリッドがデータベースから取り込まれています。 – ksa

答えて

0

これにはJQueryを使用できます。

$("a").click(function(){ 
$(this).effect("highlight", {}, 3000); 

}) 

これは簡単なことです。それが役に立てば幸い。

2

Canavarにはポイントがありますが、単純なこととして、RowDataBoundメソッドの読み込みを行い、レンダリングの最後にハイライトを実行できます。

のは、想像してみましょう(あなたがそれに関するあらゆる情報を提供しなかった原因 - ところで、いつも質問の最も詳細なバージョンを私たちに与えてください:))

GridViewのは30行表示していたと我々は行IDをhightlightする必要があります22.

は、この手順は、次のとおりです。 -

<asp:HiddenField ID="rowID" CssClass="rowids" Value='<%# Eval("YourROWID") %>' /> 

2とのHiddenFieldを追加 -

1を今、私たちが行を持っていること、私たちが必要なのは、DOMの準備ができたときに、あるループトラフすべての行とあなたはコメント

に言及selectrowに同じ値を持っているものをhightlightあなたはjQueryのを使用していますか?

var selectedRow = '<%= Request["selectrow"] %>'; 

$(document).ready(function(){ 

    $(".rowids").each(function() { // Get and Loop through all class=rowids elements 

    if($(this).value() == selectedRow) { 

    // we found it! lets find the TR and add the highlight class to it 
     $(this) // the INPUT ELEMENT 
     .parent() // the TD element 
     .parent() // the TR element 
     .addClass("highlight"); // Add the class 
    } 
    }); 
}); 

jQueryの(あなたが、しかしべきあなたのコード内でより多くの部分を改善するために、どこが再他のそれを使用することを私はほとんど必ず原因)

var selectedRow = '<%= Request["selectrow"] %>'; 
var arr = document.getElementsByTagName("input"); 

for (i = 0; i < arr.length; i++) { // Loop through all input elements 

    if(arr[i].className == "rowids" && arr[i].defaultValue == selectedRow) { 
      // it's a rowids element and the value is the one we are looking out 

     var tableRow = arr[i].parentNode.parentNode; // get it's TR element 
     tableRow.className = tableRow.className + ' hightlight'; // Add the class 
     break; // no need to loop through more, we already found the one we are looking for 
    } 
} 

追加するをREMEMBERを使用していない場合これはBODYタグの前のスクリプトで、すべての要素がページにレンダリングされると呼び出されます(DOMレディトリック)

+0

+1はい、私は自分の答えを削除しました、私は彼のコメントを気にせずに読んでいました、私は彼がターゲットページの別のグリッドを強調表示すると思った。 – Canavar

+0

私はjQueryを使用していません、これは唯一のオプションですか、それともasp.net自体に他の選択肢がありますか – ksa

+0

あなたはそれを使うべきです...あなたのUIを改善するためにもっと多くのものがありますが、あなたはjQueryフレームワークの代わりにプレーンなjavascriptを使うことができます – balexandre

関連する問題