2009-09-02 6 views
1

내 응용 프로그램은 aspx 페이지에 대한 하이퍼 링크가 포함 된 전자 메일을 사용자에게 보냅니다. get 문자열에는 guid가 있습니다. aspx 페이지는 여러 페이지에 걸쳐 행이있는 gridview를 표시합니다. 내 요구 사항은 링크를 클릭했을 때 사용자가 적절한 페이지로 이동해야하며 guid에 매핑 된 행을 강조 표시해야합니까?Gridview에서 행을 강조 표시하는 방법은 무엇입니까?

도와주세요. 긴급합니다.

+0

Grid를 채우는 것은 무엇입니까? 귀하의 사업 개체? 데이터베이스에 직접 쿼리? – balexandre

+0

그리드가 데이터베이스에서 채워집니다. – ksa

답변

0

JQuery를 사용할 수 있습니다.

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

}) 

간단 할 것입니다. 희망이 도움이됩니다.

2

Canavar에는 포인트가 있지만, 간단한 것은 RowDataBound 메소드의로드를 취하여 렌더링이 끝나면 하이라이트를 수행 할 수 있습니다.

의 GridView 30 개 행을 표시했다 :) - (BTW, 항상 질문의 가장 상세한 버전을 우리에게 주시기 바랍니다 당신이 그것을에 관한 정보를 제공하지 않은 원인) 그리고 우리는 행 ID를 hightlight 필요

의 상상하자 22

이 단계를 수행 : -

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

2와 함께에 HiddenField 추가 -

1 이제 우리는 행을 가지고, DOM을가, 루프 저점 모든 행과 당신이 jQuery를 사용하고 코멘트

에 언급 selectrow에 동일한 값을 가지고 하나를 hightlight 준비가되었을 때 우리가 필요로하는 모두는 무엇입니까?

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 
    } 
} 

추가을 기억을 이 스크립트에서 BODY 태그 앞에 있기 때문에 모든 요소가 페이지에서 렌더링 될 때 호출됩니다 (DOM 준비 트릭)

+0

+1 예, 내 대답을 삭제했습니다. 그의 의견을주의 깊게 읽지 않았기 때문에 대상 페이지의 다른 표를 강조 할 것입니다. – Canavar

+0

jQuery를 사용하고 있지 않습니다. 유일한 옵션입니까, 아니면 asp.net 자체에 다른 대안이 있습니까? – ksa

+0

사용하는 것이 좋습니다 ... UI를 향상시키는 데 사용할 수있는 요소가 훨씬 많지만 방금 내 대답을 업데이트했습니다. 그래서 jQuery 프레임 워크 대신 일반 자바 스크립트를 사용할 수 있습니다 – balexandre

관련 문제