2012-04-23 2 views
0

디자인을 할 때, 라벨이있는 데이터리스트가 있습니다. 로드 할 때 10 개의 레이블이 있습니다 (목록의 데이터 소스에는 10 개의 값 유형 int가 있습니다). 나는 내가 클릭하는 레이블의 가치를 원한다. 나는 내가 2 문제를 해결해야한다고 생각한다. 1. 클릭 한 컨트롤 (데이터리스트 안의 레이블)을 찾는다. 2. 가치를 얻으십시오. Javascript로 데이터리스트에서 클릭 한 아이템의 가치를 얻으십시오

protected void Page_Load(object sender, EventArgs e) 
    { 
     List<int> list = new List<int>(); 
     for (int i = 0; i < 10; i++) 
     { 
      list.Add(i); 

     } 
     int a=1; 

     DataList1.DataSource = list; 
     DataList1.DataBind(); 
     foreach (DataListItem item in DataList1.Items) 
     { 
      ((Label)item.FindControl("Label1")).Text = a.ToString(); 
      if ((Convert.ToInt32(((Label)item.FindControl("Label1")).Text)) % 2 != 0) 
      { 
       ((Label)item.FindControl("Label1")).BackColor = System.Drawing.Color.Gray; 
      } 
      ((Label)item.FindControl("Label1")).Attributes.Add("onclick", "run();"); 
      a++; 
     } 

가 여기 내 실행() 함수

function run() { 

      $("#Panel1").scrollTop(100*gt1); 

     } 

, 난 GT1 클릭 라벨의 가치를 원한다. 이 this 키워드를 사용하여와 자바 스크립트 이벤트를 바인딩하면서 (내 영어에 대한 SR) 돕는

감사

답변

0

이이 방법을 시도 ...

우리는 라벨의 현재 객체를 전달합니다. 서버 측

((Label)item.FindControl("Label1")).Attributes.Add("onclick", "run(this);"); 

클라이언트 측에서는 서버 측에서 전달되는 매개 변수를 수신하도록 정의를 변경해야합니다. 우리의 경우 매개 변수 이름은 lbl입니다.

function run(lbl) 
{ 
alert(lbl.innerText); 
} 

좋은 문서 here

+0

. 시도해 보았지만 .valueOf()는 .value를 볼 수없고 작동하지 않습니다. – minhminh265

+0

값 대신 .innerText를 시도하고 작동하는지 알려주세요. – Adil

+0

안녕하세요, Adil,), 내가해야 할 일 – minhminh265

0

당신은 DataList에 사용하는 CSS 클래스 내의 모든 아이템을 더 우아하게 이벤트를 클릭하는 대신 각 항목에 대해 온 클릭 이벤트를 정의하는 첨부 할 수 있습니다 당신에게 그리드 뷰의 좋은 이해를 줄 것이다.

예 : label에 다음과 같은 CSS 속성 = "itm"이 있습니다. .
먼저 추가 :

$(document).on('click', '.itm', function (e) { 
    run(this); 
}); 
+0

sr 나는 초급자 다. 분명히 말할 수있다. :) – minhminh265

0

나는 내 문제를 해결하는 방법을 발견

문자열있다 = ((라벨) item1.FindControl ("lblstt")) 텍스트; . 그 후

:

((라벨) item2.FindControl ("lblCauHoi")) Attributes.Add ("온 클릭" "실행 ("+있다 + ")") ;

희망 하시겠습니까?

관련 문제