2011-09-08 2 views
0

ASP.net 페이지의 목록보기 컨트롤에 여러 레이블이 있으며 JavaScript에서이 레이블의 값에 액세스해야 div의 각 레이블/레코드에 대한 사용자 정의 페이지 (마우스 오버 효과). 자바 스크립트에서 변수에 할당하여 첫 번째 lblID 값에 액세스 할 수 있지만 나머지는 어떻게 접근 할 수 있는지 알아야합니다 (이 예제에서는 listview에 10 개의 레코드가 있다고 가정합니다).ASP.net Listview에서 여러 컨트롤 ID의 값 가져 오기 및 JavaScript로 전달

각 레이블은 다른 값을 갖습니다. 1, 5, 24가 필요합니다. JavaScript는 마우스 오버시 텍스트를 얻기 위해 ASP.net 파일로 전달되어야합니다. sys_get_rankings.aspx? id = 1 페이지는 마우스 오버에 대한 HTML을 표시합니다.

레이블 하나의 값 (ctl00_cpMain_ListView1_ctrl0_lblID)을 얻는 것이 내 문제는 아니지만 레이블 수가 매번 변경되므로 나머지는 얻는 것이 좋습니다. 자바 스크립트의 목적은 사용자가 '버튼'이라는 클래스로 특정 요소를 가리키면 마우스 오버 효과를 만드는 것입니다.

코드 단편과 함께;

자바 스크립트 코드

<script type="text/javascript"> 
$(document).ready(function(){ 
    $('.button').CreateBubblePopup({ 
     position: 'top', 
     align: 'center', 
     innerHtml: '<img src="images/loading.gif" style="border:0px; vertical-align:middle; margin-right:10px; display:inline;" />loading!', 
     innerHtmlStyle: { color:'#FFFFFF', 'text-align':'center' }, 
     themeName: 'all-black', 
     themePath: 'images/jquerybubblepopup-theme' 
     }); 
    $('.button').mouseover(function(){ 
      var button = $(this); 
      var x = document.getElementById('ctl00_cpMain_ListView1_ctrl0_lblID').innerText; 
      $.get('sys_get_rankings.aspx?Id=' + x, function(data) { 
       button.SetBubblePopupInnerHtml(data, false); 
       }; 
      }); 
    }); 
}); 
</script> 

HTML/ASP.net 코드

<asp:ListView ID="lstUsers" runat="server" DataSourceID="sqldsUsers"> 
... 
<span style="font-family: Arial, Helvetica, sans-serif; font-size: 14px; font-weight: 
bold; color: #2661d1;" class="button"><%# Eval("Player_Name") %></span> 

<asp:Label ID="lblID" runat="server" Text="" Visible="true" ><span style="color: #FFF">  
<%#Eval("TheUserID")%></span></asp:Label> 
... 
</asp:ListView> 

나는이 말이하고이 되거 수 있다면 감사하겠습니다 바랍니다!

+0

레이블 하나 (ctl00_cpMain_ListView1_ctrl0_lblID)의 값을 얻는 것이 문제입니다. 솔직히 말해서 많은 사람들 중 하나입니다. –

답변

0

여기에 내가 어떻게 접근 할 것인가에 대한 일반적인 생각이 있습니다.

먼저 레이블 컨트롤 (예 : "레이블")에 CssClass 값을 입력하면 ASP.NET에서 만든 id 값이 무엇인지 걱정하지 않고도 얻을 수 있습니다.

둘째, 버튼 마우스 오버에 대한 javascript에서 button.next('.label')과 같은 것을 사용하여 해당 레이블에 대한 참조를 얻을 수 있습니다. 여기서는 .button 범위가 레이블 바로 옆에 있다고 가정합니다.

그러면 innerText 또는 필요한 것을 얻을 수 있습니다.

0

이유는 단지 사용자 정의 귀하의 범위에 속성을 추가하지 말 아이디 :

다음 JS 코드에서 다음과 같은 다만 수
<span userid="<%#Eval("TheUserID")%>" style="font-family: Arial, Helvetica, sans-serif; font-size: 14px; font-weight: bold; color: #2661d1;" class="button"> 

:

따라서
var x = $(this).attr('userid'); 

당신이 자신을 묶는하지 않는 당신의 DOM 구조 (언젠가 ID를 표시하지 않기로 결정할 수 있으므로 레이블이 없어도 솔루션은 계속 작동합니다).

관련 문제