2010-03-19 2 views
0

나는 updatepanel 안에 gridview 컨트롤을 가지고 있습니다. 앱을 실행하고 생성 된 소스 코드를 보면 gridview에 대한 소스 코드가 없습니다. 그래서, 난 gridview 내부 요소에 aproach 수 없습니다.Updatepanel에서 Gridview의 렌더링 된 코드가 보이지 않게 됨

내 질문은 어디에 gridview의 렌더링 된 코드이며 어떻게 내부 컨트롤에 접근 할 수 있습니까?

답변

1

브라우저에서 소스 코드를 보려고하십니까? 그리드 뷰 내에서 컨트롤에 액세스하려는 경우에는 결코 좋은 생각이 아닙니다.

Gridview 내에서 컨트롤에 액세스하는 방법은 코드에서 코드를 찾는 것입니다. 클라이언트 쪽 스크립트에 전달해야하는 경우 컨트롤의 ClientID 특성을 사용해야합니다. 다음은 gridview의 RowDataBound 이벤트에서 수행하는 작업의 예입니다.

protected void checkGrid_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     Button moveButton = (Button)e.Row.Cells[9].Controls[1];    
     moveButton.Attributes.Add("onclick","someJavaScript('"+moveButton.ClientID+"');"); 
    } 
} 

편집

는 당신에게 당신이 클라이언트 측을해야 할 것입니다 무엇의 예를 표시하려면, 여기 된 ClientID

function someJavaScript(buttonID) 
{ 
    var button = document.getElementByID(buttonID); 
    button.Click(); 
} 

당신은 또한 사용할 수를 사용하는 간단한 자바 스크립트 함수입니다 $ get 함수와 말하기

var button = $get(buttonID); 
+0

응답 해 주셔서 감사합니다. 나는 이미 당신이 나를 보여준 방식을 사용했습니다. 이것은 잘 동작했다. 하지만 gridview 내부에 체크 상자가있는 버튼이 있습니다. 버튼을 클릭하면 모든 체크 박스를 선택해야합니다. 이 문제에 대한 해결책이 있습니까? – mavera

0

F 또는 설명 : "소스보기"를 누르는 것보다 웹 브라우저에서 페이지를 열었습니다. 그리드가 화면에 존재하는 동안 GridView에 해당하는 HTML 테이블을 찾을 수 없었습니까? 그렇다면 이해할 수 있습니다 - AJAX의 역동적 인 HTML 세계에 오신 것을 환영합니다. 테이블의 사용을 참조하십시오 :

  • 또는 파이어 폭스 + 불을 지르고 플러그인을
  • 또는 IE는 + devtoolbar
  • 또는 크롬

이러한 모든 도구 메뉴했습니다 요소를 검사 - 당신이 볼 수 그것을 눌러 실제 DOM 트리를 예상대로.

"접근 중"에 관한 질문. ASP.Net 컨트롤에는 모든 컨트롤에 대해 매우 유용한 메서드 속성 ClientID가 있습니다.이 ID에는 모든 부모 이름 컨테이너를 포함하여 실제로 요소라는 이름의 비 인간 문자열이 들어 있습니다. 이 ID를 사용하여 예를 들어 document.getElementByID를 통해 요소를 찾을 수 있습니다.

관련 문제