2011-12-28 3 views
2

고객이 로그인했을 때이 응용 프로그램의 asp.net 웹 응용 프로그램에서 작업 중입니다.양식 필드 데이터가 변경되었는지 확인하는 방법은 무엇입니까?

양식 필드에 개인 정보가 표시됩니다 (예 : 이름 상자의 전체 이름, 연령 상자의 나이 등). 먼저 ms SQL에서 데이터를 가져 와서 고객 번호 인터페이스 속성에 할당합니다.이 인터페이스는 고객 클래스에 의해 구현됩니다.

그리고 우리는 또한 고객 정보 페이지에 업데이트 버튼이있어서 사용자가 업데이트를 클릭하면 불필요한 정보가 변경되면 서버로 되돌아 와서 동일한 데이터가 데이터베이스에서 업데이트되므로 다시 시도 할 것입니다. 할 일은 고객 양식에서 변경된 것이 있는지 여부를 감지 한 다음 업데이트 기능 만 작동해야한다는 것입니다.

내가 옵션

  1. 이 그냥 자바 스크립트를 사용이 다음 수없는 업데이트 버튼을 텍스트 변화를 감지했습니다.
  2. ICustomer의 임시 참조를 작성한 다음 그 내용을 true 또는 false로 처리하면 이전과 비교하십시오.

그래서 최선의 방법이나 다른 방법을 제안 해주세요.

질문이 명확하지 않은 경우 더 자세히 설명하겠습니다.

+1

변경 사항을 기록하는 JavaScript 코드를 작성하고 양식을 제출할 때이 정보를 전달할 수 있습니다. – adatapost

+0

누구나 자바 스크립트없이이 질문에 대한 답변을 가지고 있습니까? 나는 같은 문제가 있고 .OldValues는 항상 ItemUpdating 메서드에서 null입니다. 나는 옛 가치와 새로운 가치를 비교할 수 없다. – Fandango68

답변

2

JavaScript가 도움이 될 수 있지만 매우 신뢰할 수 없습니다. 나는 두 번째 옵션으로 말한다. ICustomer 개체를 Session 변수에 저장하고 새 변수와 비교하십시오.

+0

개체가 작은 경우 올바른 방법 중 하나이기도합니다. – Peeyush

5

asp.net 웹 페이지에서 formview 또는 detailsview 컨트롤을 사용하는 경우 폼의 itemupdating 이벤트 OldValues 속성을 사용하여 데이터베이스에 게시하기 전에 값을 비교할 수 있습니다. 이 작업을 수행하려면 양식의 viewstate가 활성화되어야한다고 생각합니다.

protected void myFormView_ItemUpdating(object sender, FormViewUpdateEventArgs e) 
    { 
     // Access the old values 
     e.OldValues... 

다음은 detailsview를 사용하여 전체 예입니다.

+0

답변을 주셔서 감사하지만 formview 또는 세부보기를 사용하고 있지 않습니다. 그냥 간단한 양식을 사용하는 다음 나에게 다른 솔루션을 현명한 제안하십시오 제발 내가 comparsion 개체 comparsion 함께 가야합니다. – Peeyush

+2

@ Peeyush : 가장 간단한 솔루션은 폼 값을 캡처하는 것입니다. 페이지가 javascript에로드 된 후 양식의 제출 버튼을 클릭했을 때 확인하십시오. 세션 변수에 값을 캐시하고 서버에서 값을 확인하는 것이 좋습니다. 솔직히, 폼을 의도 한대로 작동시키고 데이터베이스를 업데이트하도록하는 것이 더 좋은 생각 인 것 같습니다.소량의 프로세싱을 저장하는 것은 가치를 확인하기 위해 생각해 낸 시스템을 유지 관리 할 필요가 없습니다. –

+0

더 나은 설명을 주셔서 감사합니다 – Peeyush

2

TextBox 컨트롤을 사용하는 경우, 하나의 옵션은 TextChanged 이벤트를 사용하여 변경 사항을 감지하는 것입니다.

1

변경 사항을 감지하기 위해 Icustomer의 새 오브젝트와 비교하기 전에 이전 오브젝트를 저장해야하므로 오브젝트 크기가 너무 크지 않은 경우 두 번째 옵션으로 이동해야합니다. 그렇지 않으면 자바 스크립트를 사용하여 텍스트 필드의 변경 사항을 감지하십시오. 그러나 당신이 알고있는 것처럼 그다지 신뢰할 수 없습니다.

관련 문제