2011-10-04 4 views
2

정말 간단하게 처리하고 싶습니다. EnableClientAddRow 속성을 찾을 수없는 것 같습니다. 그래서이를 true로 설정할 수 있습니다. Web Form에 표준 GridView 컨트롤이 있습니다. 웹 양식에 버튼을 표시하고 싶습니다. 사용자가 버튼을 클릭하면 빈 행이 GridView UI에 추가되므로 사용자는 해당 필드에 데이터를 입력 할 수 있습니다. 물론 행에는 열 중 하나에 "저장"버튼이 있습니다.ASP.NET GridView 컨트롤의 새 행

나는이 기능이 어딘가 GridView에 있어야한다는 것을 알고 있으며, 나는 그것을 찾을 수 없다. 나는 이것을 수동으로 구현하려고하는 이상한 해킹을 발견했다. 바닥 글 조작이나 바인딩 트릭에는별로 관심이 없습니다. 표준 추가 행 메소드 만 있습니다.

EDIT : GridView는 행을 1 차 연산으로 추가하는 것을 지원하지 않습니다. 이것은 심각한 디자인 결함으로 보입니다.

답변

1

일반적으로 "레코드 추가"단추 클릭 동작의 일부로 기본 데이터 원본에 새 레코드를 추가합니다. 그런 다음 빈 행을 표시하기 위해보기를 다시 바인드합니다.

새 레코드는 일반적으로 GridView가 DataTable에 바인딩 된 경우 DataRow이거나 GridView가 특정 유형의 컬렉션에 바인딩 된 경우 개체입니다. 그것이 당신의 질문에서 구속력있는 속임수라고 생각하는 것인지 확신 할 수는 없지만 잘 작동하고 구현하기가 쉽습니다.

편집 - 프로세스를 설명하는 상세 정보 : 행을 데이터 소스에 추가하고 EditItemIndex를 새로 추가 된 행으로 설정하여 행이 편집 모드로 들어가도록 한 다음 데이터 소스를 GridView에 바인딩하십시오. EditItemTemplate에는 취소 및 저장 버튼이 있습니다. Cancel은 GridView를 빈 행없이 기본 데이터 소스에 다시 바인딩하고 EditItemIndex를 -1로 설정하여 GridView에서 행을 제거합니다.

+0

작동하는 것처럼 들리지만 조금 더 자세하게 설명하면 도움이 될 것 같습니다. 추가 버튼이있는 편집 가능한 행을 표시하려는 빈 행을 데이터 소스에 추가하는 것입니까? – izzy

+0

자세한 내용을 수정하여 문의 사항이 있으면 알려주십시오. –

+0

그래서이 추가 정보를 통해, GridView의 결함에 대한보다 효과적인 해킹 인 것으로 나타났습니다. 답변을 확대 할 시간을내어 주셔서 감사합니다. 정말 도움이되었습니다. – izzy

0

당신이 행이 빈 값을 가지고 있으며, 당신이 GRIDVIEW에 데이터 소스를 데이터 바인딩 경우에도 데이터 소스에 새 행을 추가하는 경우, 그냥 다른 어떤처럼 편집 가능한 행으로 표시한다 행.