문제

Telerik Radgrid에 문제가 있는데 여러 행 선택을 활성화하고 싶습니다. 또한 행을 선택하거나 선택 해제 할 때마다 서버로 가고 싶습니다. 그리드의 클라이언트 측면 이벤트를 처리하기 위해 JavaScript 함수를 만들었습니다 (OnRowSelected 및 OnRowDeselected). 기능은 다음과 같습니다.

 function onOperationRowSelected(sender, eventArgs) {
            __doPostBack("<%=myControl.ClientID %>", "rowSelected:" + eventArgs.get_itemIndexHierarchical());
        }

다른 함수는 매우 유사합니다. 유일한 차이점은 문자열을 "rowselected"대신 "rowdeselcted"를 보낸다는 것입니다.

page_load에서 요청이 "ispostback"을 사용하는 게시물 요청인지 확인하고 그렇다면 선출 된 또는 행 선택되었는지 확인합니다.

내 문제는 내 그리드에서 첫 번째 원시를 선택할 때, 사후 요청이 발생하지만 (예상되는), 두 번째 행을 선택하면 GET 요청이 발행되며, 이는 (명백히) ISPOSTBACK가 False를 반환하게됩니다.

내가 여기서 무엇을 놓치고 있습니까?


편집하다: 방금 요청 객체를 확인한 후 httpmethod 속성 값이 "Post"임을 발견했습니다. HTTP Post 요청이 어떻게되며 Ispostback은 False를 반환합니다 ??

도움이 되었습니까?

해결책

GET 요청에 올바른 이벤트 인수가 있다고 확신합니까?
GET 요청을하는 다른 것이 있다고 생각합니다. 아마도 그 그리드, 일부 리소스 또는 Ajax Pagemethod 호출 또는 URL 재 작성 또는 그와 비슷한 Ajax 마술 일 것입니다.

페이지 이름이 default.aspx 또는 같은가요? 때로는 일부 브라우저 (세부 사항을 기억할 수 없음)에서 이미지를 얻지 못하면 (정확한 상황을 기억할 수 없음) 브라우저가 "Samefolder/"URL을 누르면 기본 페이지를 엽니 다.

Firebug로 요청을 확인하고 그 말이 무엇인지 확인하십시오.

다른 팁

함수는의 동작을 존중합니다 <form>. 다음은 __dopostback이하는 일입니다.

function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}

따라서 양식이 설정된 모든 작업을 수행 할 수 있습니다. 일반적으로 ASP.NET에 게시됩니다.

그래서 가능합니까? 예, 물론, 왜 당신의 경우에 그것이 일어나고 있는지 확실하지 않습니다.

그리드가 생성하는 마크 업을 보지 않고 JavaScript에 적용 된 클릭 핸들러와 링크를 사용하여 포스트 백을 수행한다고 가정합니다. 그러므로 가장 가능성이 높은 범인은 핸들러가 발사하는 것을 방지하는 JavaScript 오류라고 생각합니다. 내가 줄 수있는 최고의 조언은 Firefox/Firebug에서보고 콘솔에 오류가 표시되는지 확인하는 것입니다.

즉, JavaScript가 비활성화 된 경우 작동하도록 앱을 작성하고 오류를 수정하고 GET 요청으로 끝나면 응답 방법을 알아냅니다.

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