2008-10-27 3 views

답변

3

WebMethods for Ajax를 사용하면 보안상의 이유로 응답 값이 'd'라는 객체에 래핑되어 반환됩니다. jquery ajax를 사용하는 구성 요소 (예 : jqGrid 플러그인)를 사용하지 않는 한 일반적으로 문제가되지 않는 값을 래핑해야합니다. 이 문제를 해결하기 위해 방금 아약스라는 그리드의 코드를 변경하고 unwrap 코드를 삽입했습니다. jquery crew에 코드를 보내서 향후 버전에서 사용할 수 있는지 확인하려고합니다.

이전에 언급했듯이 다음 항목은 ID입니다.

protected override void RenderAttributes(HtmlTextWriter writer) { 
    HtmlControlImpl.RenderAttributes(this, writer); 
} 

그리고 도우미 개체 (각 개체에 같은 코드를 작성 방지하기 위해) : 당신은 시간과 성향이 있다면, 나는 실제로처럼 NamingContainer 옵션에 참여하기 위해 HTML 컨트롤의 모든 서브 클래스 다음과 같습니다 :

public static void RenderAttributes(IFormControl cntrl, HtmlTextWriter writer) { 
    if (cntrl.ID != null) { 
     cntrl.Attributes.Remove("id"); 
     cntrl.Attributes.Remove("name"); 
     writer.WriteAttribute("id", cntrl.RenderedId); 
     writer.WriteAttribute("name", cntrl.RenderedName); 
    } 
    cntrl.Attributes.Render(writer); 
    HtmlContainerControl containerCntrl = cntrl as HtmlContainerControl; 
    if (containerCntrl == null) 
     writer.Write(" /"); 
} 

public static string GetRenderedId(IFormControl cntrl) { 
    return cntrl.UseNamingContainer ? cntrl.ClientID : cntrl.ID; 
} 

public static string GetRenderedName(IFormControl cntrl) { 
    return cntrl.UseNamingContainer ? cntrl.UniqueID : cntrl.ID; 
} 
5

ASP.Net의 자동 생성 된 ID는 jQuery의 선택기 구문을 사용하는 것이 다소 어렵습니다. 이 문제를 해결

두 쉬운 방법 :

  • 당신과 함께가 UniqueID 쓰레기를 걸러 낼 수 있습니다 대신 ID
  • 의 CSS 클래스를 사용하여 객체에 대한 검색 : $('[id$=myid]')
+0

$ ('[id $ = myid]')에 대한 메모 주셔서 감사합니다. 나는 나의 "유일한 쓰레기"를 마침내 제거 할 수있다! – EndangeredMassa

+0

와우! 나는 [id $ = myId]가 무엇을 할 지 몰랐으므로 [documentation] (http://docs.jquery.com/Selectors/attributeEndsWith#attributevalue)에서 찾아 보았습니다. 끝을 맞추면 아주 간단 해! 정규 표현식을 사용할 내기. 항상 '_'로 시작하여 더 향상시킬 수 있습니다. 감사! 당신은 금메달을 얻습니다! – Armstrongest

+0

굉장 팁 아담! – Lorenzo

1

Rick Strahl's Blog이 좋은 장소입니다 시작한다. 그는 꽤 많은 jQuery 게시물을 가지고 있습니다.