문제

ASP Net Ajax 툴킷을 사용하고 있으며 GridViewUpdatePanel, 모든 것이 잘 작동합니다.

내가 몇 가지를 실행하려고 할 때 JQuery 생성해야 할 테이블에 대해 GridView (또는 테이블 HTML) 반환 된 돔에서. 나는 이것이 모두 ASP 생성에 의해 수행된다고 가정합니다. Javascript?

a에 대한 조치를 어떻게 수행 할 수 있습니까? GridView 그것은 안에 있습니다 UpdatePanel?

도움이 되었습니까?

해결책

ASP.NET은 특정 조건에서 제어 이름을 관리합니다. 생성 된 소스를보고 생성 될 때 asp.net이 제공 한 이름으로 제어를 참조 할 수 있습니다. 아마 당신이 마크 업에서 준 이름이 아닐 것입니다.

다른 팁

CodeBehind에서 javaScript를 생성 할 수 있다면 Page_Load에서 angistence에서 gridView1.clientID 등을 JavaScript에 주입 할 수 있습니다. (예를 들어 여기에 텍스트 상자를 사용하지만 같은 개념을 따릅니다.)

protected void Page_Load(object sender, EventArgs e)
{
    string js = "$(document).ready(function(){$(\"#" + this.TextBox1.ClientID + "\").text('hello world');});";
    HtmlGenericControl script = new HtmlGenericControl("script");
    script.Attributes.Add("type", "text/javascript");
    script.InnerHtml = js;
    Page.ClientScript.RegisterStartupScript(this.GetType(), "key", js, true);
}

내가 생각할 수있는 세 가지 해결책이 있습니다. Dave가 제안한대로 ClientID를 사용하여 서버에서 JavaScript를 주입하는 첫 번째 첫 번째는 작동하지만 실제로 지저분 해집니다. 나는 이것을 한동안 수행했지만 서버 측 및 클라이언트 측의 긴밀한 결합으로 인해 문제가 발생합니다.

두 번째는 CSS 클래스와 같은 엔티티를 식별하는 다른 방법을 제공하는 것입니다. 이것은 첫 번째 옵션보다 낫지 만 똑바로 유지 해야하는 외부 클래스 정의가 많이 남습니다.

내가 선호하는 솔루션은 선택기 엔진이있는 jQuery와 같은 JavaScript 프레임 워크를 사용하는 것입니다. 이렇게하면 영리한 선택과 DOM Traversal을 통해 독특한 쓰레기를 둘러 볼 수 있습니다.

MyControl이라는 컨트롤이 있다고 가정 해 봅시다. ASP.NET은 그 전에 거대한 네임 스페이스를 생성하므로 렌더링 할 때 ID 충돌이 없습니다. 그러나 MyControl로 끝나는 ID가있는 모든 객체를 선택하는 $ ( '[id $ = myControl]')를 수행하여 모든 MyControl을 선택할 수 있습니다. 다른 프레임 워크에서는이 작업을 수행하는 유사한 방법이있을 수 있지만 예를 들어 예시를 제시 할만 큼 익숙하지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top