2009-04-07 3 views
1

.net (C#) 웹 응용 프로그램에서 작업하고 있습니다.코드 생각 Datagrid 바닥 글 텍스트 상자가 비어 있습니다

최근에 두 명의 사용자가 동시에 응용 프로그램에 로그인했을 때 둘 다 페이지를 새로 고치지 않고 값을 업데이트 할 수 없다는 결함이 발생했습니다. 이 문제를 조사한 결과 코드 작성자가 정적 데이터 세트를 사용함을 발견했습니다. 정적이 아니고 모든 것이 잘 작동하도록 데이터 세트를 변경했습니다.

그러나이 문제는 응용 프로그램의 많은 페이지에 걸쳐 있으므로 모든 곳에서 해결해야합니다. 이러한 페이지 중 일부에서 응용 프로그램은 데이터 집합을 사용하여 데이터를 데이터 격자에 바인딩합니다. DataGrid에는 데이터 세트의 정보가 채워지며 바닥 글에는 텍스트 상자와 추가 행을 추가하는 추가 버튼이 있습니다. 문제가 시작되는 곳은 다음과 같습니다.

페이지가 정적 데이터 세트를 사용하고 사용자가 인터페이스를 통해 행을 추가하려고하면 모든 것이 정상적으로 작동합니다. 그러나 정적이 아닌 데이터 세트를 사용하도록 변경했을 때 (페이지가로드 될 때마다로드 됨) 사용자가 행을 추가하려고하면 코드는 텍스트 상자가 비어 있다고 생각합니다 (디버깅 할 때 발견되었습니다. 입력 한 텍스트) 및 빈 필드 유효성 검사가 실패하고 메시지가 표시됩니다.

누군가 지구상에서 왜 이런 일이 일어 났는지 말해 줄 수 있습니까? 왜 데이터 세트가 정적 일 때 텍스트를 볼 수 있습니까 (데이터 세트는 발 행을 채우지 않습니다) 정적이 아닌 텍스트를 볼 수없는 이유는 무엇입니까? 약간 통찰력은 굉장 할 것이다!

미리 감사드립니다.

답변

2

그리드가 바인딩되는 방식에 문제가있었습니다.

데이터 집합이 인스턴스화 될 때 바인딩이 발생했습니다. 즉, 페이지가로드 될 때마다 바인딩이 다시 발생하여 텍스트가 비어있게됩니다. 이것은 페이지로드 전에 실행중인 것처럼 보이지만 DataGrid가 어쨌든 그것을 좋아하지 않는다는 것을 고려할 때 이상하게 보입니다. 바인딩이 발생하는 곳으로 이동하여 페이지가로드 될 때 한 번만 발생합니다 (물론 뭔가가 그리드에 추가 될 때 발생합니다).

트릭을하는 것처럼 보였습니다!