"사용하지 않은"항목의 바운드 드롭 다운 목록과 GridView의 editeMtemplate의 현재 행 항목?

StackOverflow https://stackoverflow.com/questions/2250395

문제

고유 한 ID가있는 2 개의 테이블이 서로 맵핑 될 수 있습니다 (한 테이블은 응용 프로그램 이외의 데이터베이스에서 나오지만 추적하는 것과 동일한 엔티티에 대한 정보가 있습니다). "내"레코드를 "기타"레코드와 연결하기위한 UI를 제공하고 싶으므로 일치하는 레코드의 "기타"ID를 내 테이블에 저장할 수 있습니다. 간단히 말해서, 키 UI 요소는 "다른"테이블에서 사용 가능한 (예 : 아직 연결되지 않은) 레코드를 보여주는 드롭 다운 목록입니다.

각 행에 "내"레코드를 표시하기위한 GridView와 "기타"테이블의 링크 된 레코드의 정보를 표시하는 열이 있습니다. 데이터는 건물과 부동산을 구매하므로 다음과 같습니다.

Building1   Dallas   TX    Building1_Dallas_TX
Building2   Memphis  TN    Bldg2_Memphis_TN
Building3   Denver   CO
Building4   Seattle  WA
Building5   Boston   MA    Building5_Boston_MA

처음 3 개의 열에 "My"테이블의 일부 정보가 표시되고 마지막 항목은 레코드가 이미 링크 된 "기타"테이블의 일치 레코드를 보여 주면 링크가 설정되지 않은 경우 공백이 표시됩니다. 내 실제 GridView에는 "My"테이블에서 몇 가지 더 많은 열이 있지만 필요를 설명하기에 충분합니다.

편집 (표시되지 않음)이 행에 클릭되면 4 개의 열을 모두 편집 할 수 있습니다. 첫 번째 3 개는 텍스트 상자입니다. 마지막 열은 모든 것을 보여주는 드롭 다운 목록이어야합니다. 링크되지 않았습니다 "기타"테이블의 레코드, ...을 더한 "할당되지 않은"옵션 (목록의 첫 번째 항목으로)이므로 레코드는 "연결되지 않은"또는 단순히 할당되지 않은 상태로 유지 될 수 있습니다. ...을 더한 (이미 링크가 설치된 행에) 링크 된 항목 ( "사용"하지만 계속 사용할 수 있도록 거기에 있어야합니다).

GridView Rowediting 이벤트에서 Code-Behind에서 DropdownList를 올바르게 채울 수 있습니다 (부록에서 set with the listitem으로 추가하는 할당되지 않은 항목 제외). 이벤트, 그러나 Postback에서 행을 클릭하면 행을 업데이트 할 때 DDL에는 더 이상 항목이 없으므로 (할당되지 않은 항목 제외) 항상 링크가 지워집니다. 내 테이블을 직접 편집하여 수동으로 링크를 설정하면 모든 것이 편집 모드로 잘 보이게 보입니다. DDL에는 올바른 항목이 있으며 올바른 항목이 사전 선택되지만 업데이트 Postback에서 모두 손실됩니다. 페이지주기의 다양한 단계에서 DDL을 다시 바인딩하려고 시도했지만 사용자가 선택한 항목이 내 테이블을 업데이트하는 방법을 알 수 없기 때문에 그 사이클을 충분히 잘 이해하지 못했습니다.

또한 SQLDatasource SelectCommand로 DDL을 채우려고 시도했지만 다른 데이터베이스에서 현재 연결된 레코드의 ID를 포함하여 운이 없었습니다 ( "내"테이블에서 사용할 수 있지만 GridView Datakey 및 Add로 설정했습니다. SQLDatasource의 SelectParameters의 ControlParameter로서 DDL 항목 목록에 현재 연결된 레코드가 없으면 기존 링크를 유지할 수 없습니다.

지금은 코드 샘플을 보내겠습니다.이 메시지는 이미 너무 길다! - 솔루션이 내가 묘사 한 것에서 분명하다는 것을 희망하면서 ... 나는 내 목표가 이상하다고 생각하지 않지만 그렇지 않으면 설득 될 수 있습니다.

미리 감사드립니다!

크리스

도움이 되었습니까?

해결책

좋아, 나는 당신이 내가 제안하려는 것을 이미했을 수도 있기 때문에 코드로 세부 사항을 사용하지 않을 것입니다.

마지막 열, 드롭 다운 목록의 경우, 당신은 당신에게 린드되지 않은 항목을 잡으려면 SQL 문을 실행해야합니다. "xx가 아닌 곳"을 사용하십시오. "할당되지 않은"옵션의 경우 위와 같은 코드 범위로 목록에 항목을 추가하십시오.

다음 단계는 GridView의 편집 이벤트를 수동으로 처리하는 것입니다. 삽입, 업데이트 및 삭제.

나는 당신이 문제가 없다고 생각합니다.

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