2011-05-16 2 views
0

5 개의 열을 포함하는 Gridview가 있으며 그 중 마지막 세 열은 Item Templates의 텍스트 상자입니다. 첫 번째 열은 데이터 원본에서 바인딩하는 1,2,3 ... 등으로 구성됩니다. 특정 행에 대해 텍스트 상자의 마지막 열에 텍스트를 입력 할 때 그 행 아래에 해당 텍스트 상자의 textchanged 이벤트에 새 행을 추가해야합니다. 또한 해당 행의 첫 번째 열 값은 1A, 1B ... 등과 같은 확장자를 가져야합니다. 이렇게 다른 행에서도 가능해야합니다 ...... plz는 실제로 도움을 사용할 수 있습니다 !!! 또한 C#으로 언어를 유지하십시오.Gridview 새 행

새 행 부분과 확장 프로그램이 내게 문제가된다 ..... 나머지는 할 수있다 !!!

+3

대단한데, 지금까지 해보지 못한 것은 무엇입니까? – R0MANARMY

답변

1

당신은 다음을 수행해야합니다 감사합니다

  1. 당신은 당신이 포스트 백 사이의 GridView에 바인딩되어있는 DataTable을 지속 할 필요가있다. 세션 상태에 저장하는 것이 좋습니다.

    세션 (PageID + "MainDT") = MyDataTable;

  2. , 당신이 세션에서 (페이지 id + "MainDT")를

    DataTable을 MainDT = (DataTable을) 세션 데이터 표를로드 할 이벤트 핸들러에서 텍스트 상자의 텍스트 변경 이벤트

  3. 를 처리 ;

  4. 그런 다음 새 데이터 행을 구성해야합니다. 새 행에 원하는 값을이 DataRow에 넣습니다. 주 DataTable과 일치하는 스키마로 새 데이터row를 만드는 방법은 무엇입니까? 이렇게 :

    DataRow DR = DT.NewRow(); // 복사본은 새 행 다음

  5. 에 DataTable의 스키마,

은 어떻게되는 행에 삽입 알 수 있습니까 메인 데이터 테이블에서 올바른 위치에 행을 삽입? 그것은 1

DT.Rows.InsertAt(MyRow, RowToInsertAt); 

마지막으로, 당신은 당신의 GridView를 리 바인드해야 +를있는 gridview의 EditIndex 될 것

MyGridView.DataSource = MyDataTable; 
MyGridView.DataBind() 

- 당신이 보통이다 1A 또는 1B를 표시해야합니다 열 number는 varchar/text 필드를 기반으로해야합니다. 따라서 기본 DataTable에 Select 문에 MyNumber로 빠른 Convert (varchar (55), MyNumber)를 수행하도록 SQL을 제공하는 것이 좋습니다. 그렇게하면, 추가 DataRow (위 참조)를 채울 때 문자열을 MyNumber와 연결된 열로 바꿀 수 있습니다.

참고 2 - 일반적으로 이러한 상황에서는 "+"아이콘을 추가합니다. 이 버튼을 누르면 사용자 정의 행 대신 중첩 된 격자보기, 리피터 또는 데이터 목록이 사용됩니다. 위의 방식으로 Gridview에 여분의 행을 끼워 넣는 것은 유지하기 어렵다는 것을 알았지 만 중첩 된 gridviews 또는 datalists는 한 번 수행하면 너무 나쁘지 않습니다.

죄송합니다. 구문이 다소 구피하다면 저는 VB.NET 세계에 살고 있습니다.