문제

100 개의 레코드를 검색하고 페이지에 표시한다고 가정 해보십시오. 사용자는 페이지의 레코드 중 2 개만 업데이트합니다. 이제 다른 98이 아닌 두 레코드 만 업데이트하려고합니다.

페이지에 하나의 제출을하는 것이 가장 좋습니까? 그런 다음 어떤 2가 업데이트되었는지 알고 업데이트를 위해 두 개만 DB로 보내십시오.

"어떻게 든"어떻게 생겼습니까?

아니면 각 행에 대한 업데이트 서브미트 버튼이 있고 묶인 레코드 만 업데이트하도록합니까?

도움이 되었습니까?

해결책

물론이 작업을 수행 할 수있는 다른 방법이 있습니다. 일반적으로 JavaScript를 사용하여 변경된 레코드에 대해 게시물 데이터를 조립하여 문제 및 서버 측 처리를 저장할 수 있습니다. 이것이 어떻게 작동하는지에 대한 두 가지 생각 :

1) Ajax 경로로 가서 수행하십시오 라이브-편집. 따라서 레코드는 테이블에 표시되며 편집 할 수없는 것으로 보입니다. 사용자가 특정 행을 클릭하면 JavaScript를 사용하여 적절한 HTML 양식을 즉시 작성하여 해당 행을 편집 할 수 있습니다. 그런 다음 제출 버튼 또는 다른 핸들러 (예 : 다른 테이블 행으로 초점을 이동)가있어서 DB를 업데이트하는 게시물을 트리거합니다 (선호하는 AJAX 메소드를 통해 비동기 적으로). 행복하게도 주류 JavaScript 프레임 워크 가이 분야에서 많은 도움이 될 수 있습니다.

2) 확인란 - 행이 편집 될 때마다 확인란이 확인됩니다. 제출 버튼을 클릭하면 JavaScript를 사용하여 확인란을 확인한 모든 것을 연속으로 잡아 게시물 데이터를 게시하십시오. 사용자는 제출하기 전에 해당 행의 변경 사항을 취소하기 위해 상자를 확인할 수 있습니다.

다른 팁

ajax jQuery 또는 다른 JavaScript 라이브러리를 사용하여 각 행에 버튼을 넣고 업데이트하십시오.

이 질문에 대한 많은 답변이 있으며 어느 정도는 개발 도구와 사이트의 "느낌"에 의존합니다.

AJAX 호출을 구현하여 한 줄씩 업데이트를 수행하는 경우 논리적으로 라인 당 버튼이있는 다음 라인이 변경 될 때 AJAX 호출로 업데이트하는 것이 옳은 것처럼 보입니다.

이것은 또한 연결이 끊긴 데이터 세트가 해결되도록 설계되었으며 Ado.net은이를 잘 처리하도록 설계된 시나리오 일뿐입니다.

그 어느 때보 다 대답은 "그것은 의존합니다!"입니다.

사용자가 입력 필드를 변경할 때 각 필드를 변경하여 JavaScript를 사용하여 각 필드를 변경할 수 있습니다. 업데이트중인 행의 ID와 더러운 플래그가있는 숨겨진 필드를 만듭니다. JavaScript에서 (IS_DIRTY_ $ ID와 같은) 숨겨진 필드를 더러운 것으로 설정하는 onchange 핸들러를 만듭니다. 입력이 변경되면

또는 표시하는 각 실제 필드마다 숨겨진 필드를 만들 수 있습니다. 숨겨진 필드에는 초기 값이 포함됩니다. 서버 측의 각 필드를 확인하여 변경된 내용을 확인하십시오.

아마도 마지막 _modified 날짜를 각 레코드에 대한 숨겨진 필드로 저장하고 싶을 것입니다. 이런 식으로 다른 사용자가 동일한 레코드를 업데이트하면 "이 레코드가 다른 사용자가 업데이트되었습니다"라는 오류 메시지를 표시 할 수 있습니다.

하나의 제출 버튼. 나는 사건을 예측할 수 있었지만, 나는 하나 이상을 사용할 수 있지만 일반적인 경우에는 단 하나만 사용할 수 있습니다. (이것은 나에게 웹 페이지 질문처럼 보이므로 그 가정에 대답하고 있습니다.)

추적 변경을 처리 할 수있는 세 가지 방법이 있습니다.

JavaScript : 숨겨진 필드를 업데이트하는 컨트롤에 onchange () 함수를 넣습니다. 해당 숨겨진 값이 있으면 관련 레코드를 업데이트하십시오. 브라우저에 JS가 필요하며 업데이트 할 필드 (어떤 레코드)를 알려주지 않습니다.

많은 형태의 필드 : 각 컨트롤에 숨겨진 필드를 꺼내서 돌아올 때 모두 비교하십시오. 이것은 추악하지만, 어떤 필드를 업데이트 할 필드 (레코드뿐만 아니라)를 알 수 있습니다. 또한 누군가가 시작된 변화를 방해하지 않았는지 알 수 있습니다.

세션 : 세션 변수에 원래 값을 배치 한 다음 값이 다시 올 때 비교를 수행 할 수 있습니다. 이것은 숨겨진 필드보다 조금 더 우아하고, 뒤로 백 데이터를 가지고 노는 사람들에게는 덜 개방적입니다 (숨겨진 필드에서도 돌아 오는 것을 믿어서는 안되기 때문입니다). 브라우저의 쿠키와 서버 기술의 세션이 필요합니다.

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