편집 양식 템플릿이있는 ASPxGridView가 있습니다. 이 표의 DataSource는 읽기 전용 데이터 원본 인 EntityServerModeSource입니다. 필터링과 정렬을 데이터베이스 서버에 위임하기 때문에이 조합을 사용합니다.ASPXGridView EditFromTemplate에서 보이지 않는 필드와 바인딩되지 않은 필드를 "바인딩"하는 방법?
간략한 설명을 위해 간단한 시나리오를 제공합니다. 내 EntityServerModeSource가 필드 A, B 및 C가있는 행을 반환합니다.
업데이트를 위해 수행하는 작업은 다음과 같습니다. 업데이트에 대한
<asp:TextBox Text='<%# Bind("A")%>' />
<asp:TextBox Text='<%# Bind("B")%>' />
가 나는 전자에 대한 ASPxGridView 이벤트의 RowUpdating에서 3 개 개의 매개 변수의 A, B와 C를 예상하는 저장 프로 시저를 확인했다 : EditFormTemplate에서 나는 내가 좋아하는 A와 B 뭔가 필드에 바인딩 컨트롤이 .NewValues 콜렉션. 문제는 필드 A와 B만이 아니라 C가 포함되어 있다는 것입니다. 이것은 필드 C가 컨트롤에 바인딩되지 않았기 때문에 예상되고 정상적인 것입니다. 예 : NewValues [ "C"]는 null을 반환합니다. 하지만 C의 오래된 값이 필요하므로이 세 가지를 모두 예상하는 저장 프로 시저에 전달할 수 있습니다. 데이터베이스의 기존 값을 덮어 쓰므로 일부 값만 만들 수는 없습니다.
<div style="display: none">
<asp:TextBox Text= '<%# Bind("C")%>' />
</div>
이제 필드 C가 바인딩과의 RowUpdating 이벤트에 내가 액세스 할 수 있습니다
내 해키 솔루션은 C를 필드 그것이 보이지과 같이 할 결박, EditFormTemplate 내부 더미 컨트롤을 만드는 것이 었습니다 e.OldValue [ "C"]와 함께. 그러나 이것은 해키 한 해결책이며 나는 그것을 좋아하지 않습니다. 코드 숨김 또는 필드 C를 OldVaues 및 NewValues 컬렉션에 표시하도록 필드 C를 "바인딩"하는 방법이 있습니까?