2014-05-13 1 views
0

포스트 백 (postback) (또는 적어도 전체 포스트 백)을 방지하기 위해 데이터 저장 및 검색을 위해 주로 AJAX를 사용하는 웹 사이트를 개발 중입니다. 코드 비하인드에서 페이지를 "준비"하고 클라이언트에서 JQ와 Javascript를 사용합니다. 데이터를 저장할 때 컨테이너 (JQ 사용)의 요소를 직렬화 한 다음 WebMethod에 데이터를 보내기 위해 AJAX 포스트를 직렬화합니다. 잘 작동하지만 긴 이름 요소 ("ctl00 $ MainContent $ grdEmployees $ ctl03 $ ddlRole")를 처리해야합니다. 동일한 WebMethod를 다른 페이지에서 호출 할 수 있으므로 NameValueColletion의 데이터를 검색하기가 어렵 기 때문에 요소의 "이름"이 다른 컨테이너에 중첩 된 컨트롤과 동일하지 않습니다.ASP.NET에서 JQ.serialize와 함께 사용할 사용자 정의 컨트롤 이름 (ID가 아님)

이 문제를 방지하려면 ASP.NET 컨트롤에 대한 사용자 지정 이름을 설정하는 방법이 있습니까? 또는 다른 방법으로이 동작을 수행 할 수 있습니까?

감사합니다.

답변

0

.NET 4.5에서 ClientIDMode = "Static"을 사용해 보셨습니까?

페이지가 렌더링 될 때주의 깊게 ID가 모두 변경됩니다. 그러나 ClientIDMode를 정적으로 설정하면 컨트롤 자체에 넣은 ID로 렌더링됩니다. 그렇게하면 생성 된 ID 대신 컨트롤의 ID를 사용하여 작업 할 수 있습니다. 당신이 더 많은 여기 알고 싶다면 것은 예, 정적에 ClientIDMode를 설정

http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientidmode(v=vs.110).aspx

+0

ClientIDMode 대한 MSDNA에 같은하지만 그것은 단지 컨트롤 ID에 영향을 미치고 이름을 제어하지. JQ.serialize는 컨트롤 이름을 사용합니다. 폼을 게시 할 때와 같은 방식으로 작동하므로 키 - 값 쌍이 생성됩니다. 값은 키가 아니라 컨트롤의 이름이고 ID는 액세스하지 않습니다. – Oliver

관련 문제