2011-10-10 6 views
2

UpdatePanel이있는 UserControl이 있습니다. 업데이트 패널에는 DropDownList가 있습니다. 섹션이 변경되면 DataList가로드되고 제출 단추가 표시됩니다. 제출 버튼은 IE와 FireFox에서 잘 작동하지만 Chrome에서는 간헐적으로 아무 것도하지 않는 것처럼 보입니다 (Chrome에서 여러 번 작동 함). 작동하지 않으면 업데이트 패널의 asp.net ajax UpdateProgress 템플릿이 표시되지 않고 서버에 다시 게시되지 않습니다. UpdatePanel에는 ChildrenAsTriggers = true이고 버튼은 자식입니다. 버튼이 사용 설정되어 있고 Chrome 개발자 도구 콘솔에 스크립트 오류가 표시되지 않습니다. 어느 시점에서도 서버 사이드 예외가 발생하지 않습니다. 버튼을 프로그램에 부착 자바 스크립트에는 사용자가 없습니다 :제출 버튼으로 Chrome에 아무런 변화가 없습니다.

<asp:Button ID="btnContinue" runat="server" Text="" CssClass="btn_continue" OnClick="btnCheckOut_Click" /> 

어떻게 더 내가 버튼을 클릭 할 때 발생 (또는 발생하지 않음) 무엇을 디버깅 할 수 있습니다?

편집 :

1) 문제가 발생하면 후속 포스트 백은 작동하지 : 여기에 몇 가지 새로운 정보가 있습니다. 드롭 다운 목록에서 항목을 선택하고 비동기 적으로 다시 게시 한 다음 단추를 선택하거나 드롭 다운 목록 선택을 다시 변경하면 다시 게시가 발생합니다.

2) 문제가 발생하면 Tools> Clear Browsing Data로 가서 "Empty The Cache"만 선택하고 선택을 취소 한 다음 페이지를 다시로드하면 문제가 사라집니다. 로그 아웃하고 페이지로 돌아올 때까지는 재현 할 수 없습니다. 그래서 캐시와 관련된 것 같습니다.

3) 복수 포스트 백이 UpdatePanel없이 제대로 작동하는 것 같습니다.

편집 2 : 이것은 분명히 중요한 요소 인 SharePoint 2007에서 실행됩니다. masterpage는 INIT.JS 스크립트를 사용하여 본문 OnLoad 및 양식 OnSubmit 이벤트를 수행하여 일부 작업을 수행합니다. 한 가지는 폼이 제출되었는지 여부를 나타내는 플래그를 설정하고 OnLoad에서 false로 다시 설정합니다. OnLoad 함수는 기본적으로 ajax 포스트 백을 위해 해당 프로세스를 무시합니다. 문제는 Chrome이 OnLoad 이벤트를 실행하지 않아 프로세스가 건너 뛰지 않으며 플래그가 다시 false로 설정되지 않으며 연속 제출이 OnSubmit 함수에 의해 거부된다는 것입니다. 여기에 그 문제를 다루는 스레드가 있습니다. http://social.msdn.microsoft.com/Forums/en-ca/sharepointgeneral/thread/97ff77d1-31d4-45ff-af6e-524416cdff1c

+0

응용 프로그램이 MOSS 위에 구축되는 것과 같은 중요한 정보는 누락되었습니다. 문제에 대한 모든 정보를 제공하면 신속하게 답변을 얻을 수 있습니다. –

+0

그래, 문제가 SharePoint에만 해당된다는 것을 알았다면 도움이되었을 것입니다. 그러나, 내 질문에 버그를 해결하는 방법 아니라 버그를 해결하는 방법. 그 질문에 대한 답은 SharePoint를 범인으로 포함시키기 위해 그것을 좁히도록 이끌었습니다. 환경, 하드웨어 및 관련 소프트웨어에 대해 포함 할 수있는 몇 가지 다른 세부 정보가있을 수 있습니다.이 정보는 버그와 관련된 내용을 파악하기 전에 잠재적으로 관련 정보가 될 수 있습니다. "모든 정보"를 포함 시키면 책을 얻을 수 있다는 사실은 사실 문제 해결 단계에 대해 묻는 이유입니다. – xr280xr

+0

불쾌감을 드려 ​​죄송합니다. 제 의도가 아닙니다. 나는 MOSS에 대해서도 꽤 재미있는 경험을하고 있으며, 시간이 지나면 스크립트가 아닌 asp를 찾는다. 그러나 MOSS 어딘가에있는 사람은 범인이다. –

답변

0

내장 된 Chrome 개발자 도구를 사용하여 문제를 더 디버깅 할 수 있습니다. 양식이 게시되지는 않지만 클라이언트 측 스크립트가 실행 중입니다. 공구 모양 버튼> 도구> 개발자 도구를 클릭하거나 Ctrl + Shift + I를 누릅니다. 스크립트 탭을 사용하여 자바 스크립트를 디버깅하십시오. 버튼에 연결된 자바 스크립트가 없을 수도 있지만 양식에 OnSubmit 스크립트가있을 수 있습니다. 해당 스크립트에 중단 점을 설정할 수 있습니다. 자동 다시 게시 DropDownList도 작동하지 않았으므로 OnChanged 이벤트에 중단 점을 설정할 수 있습니다. ajax 스크립트 관리자는 OnChanged 이벤트에 setTimeout 스크립트를 자동으로 삽입하므로 스크립트 창의 오른쪽에서 Event Listener Breakpoints 확장기를 선택하고 타이머를 확장하고 Timer Fired 이벤트를 확인하는 것이 한 가지 방법입니다. 또는 Sys $ WebForms $ PageRequestManager $ _doPostBack (eventTarget, eventArgument) 함수에 대한 ScriptResource.axd 파일을 검색하여 거기에 중단 점을 설정할 수 있지만 다음 단계가 필요할 수 있습니다.

휴식은 한 가지이지만 읽을 수있는 스크립트를 갖는 것이 다른 것입니다. 아약스 스크립트는 기본적으로 도움이되지 않지만 사이트의 웹을 변경하는 경우 유용합니다.구성을 사용하십시오

<compilation Debug="true">. 

이렇게하면 단계별로 수행 할 수있는 더 읽기 쉬운 디버그 버전의 ajax 스크립트가로드됩니다.

0

http 트래픽을 디버깅 할 때는 항상 Fiddler을 권장합니다.

+0

Fiddler를 사용하여 두 번 확인 하겠지만 게시하지 않으므로 HTTP 트래픽이 없습니다. – xr280xr

+1

@ xr280xr 어쩌면 http://stackoverflow.com/questions/508994/asp-net-dropdownlist-autopostback-and-google-chrome ? –

+0

감사합니다. 나는 그것을 시험해 보았다. 그리고 그것이 달리고있다라고 그러나 이것이이 문제와 도움이되지 않는 것을 확인했다. 위의 원래 게시물에 새로운 정보를 추가했습니다. – xr280xr

관련 문제