ASP.NET DataGrid는 매우 좋은 테이블 컨트롤로 잘 알려져 있지만 DataGrid의 편집 기능을 칭찬할 수는 없습니다. DataGrid의 데이터 제출 기능을 예로 들면 실제로 큰 문제가 있습니다. , 한 줄을 제출해야 하는데, 이는 소위 "한 줄 편집, 한 줄 제출"입니다. 이 경우 너무 많은 줄을 편집하면 사용자 작업이 번거로울 뿐만 아니라 빈번한 액세스가 발생하게 됩니다. 서버로 전송되어 시스템 효율성이 크게 저하됩니다.
물론, 편집할 내용을 다른 페이지로 전송하고 TextBox에서 편집하는 부활된 솔루션이 있습니다. 그런데 잘 생각해보면 이 방법은 자신을 속이는 것이 아닌가? 또한, Grid에서 편집할 때, 응답이 Enter Events require인 경우 Tab 키를 사용하여 Grid(TextBox) 사이를 이동할 수 없는 경우도 있습니다. 프로그래머는 개발에 많은 에너지를 낭비합니다.
위의 문제를 해결하는 방법은 무엇입니까? 이제 제가 사용하고 있는 가정용 DataGrid를 추천해 드립니다. SmartGrid(Sky Software Station: http://www.skycn.com/soft/23547.html 에서 다운로드 가능) 저는 오랫동안 이 컨트롤을 사용해 왔습니다. 이제 SmartGrid의 다중 행 제출 방법에 대해 살펴보겠습니다. SmartGrid에는 DataGrid에 버튼 열이 없습니다. 대신 전체 양식에는 하나의 행을 변경하든 여러 행을 변경하든 한 번에 제출할 수 있습니다. , 다음과 같이 몇 가지 예를 살펴보겠습니다.
예:
위 그림은 편집의 더 좋은 예입니다. 예를 들어 여러 줄 또는 한 줄을 편집한 후 함께 제출할 수 있습니다.
코드:
버튼 코드 수정:
private void btonSave_Click(object sender, System.EventArgs e)
{
this.DataGrid1.ReadOnly = false;//입력 편집
this.DataGrid1.AllowAdd = true;//Allow 추가
this.DataGrid1.AllowDelete = true; //삭제 허용
}
이 코드는 스마트그리드의 고유한 속성으로,
버튼 코드를 추가, 삭제, 편집, 저장하는 다양한 기능을 설정할 수 있습니다.
private void Button2_Click(개체 송신자, System.EventArgs e)
{
DataTable t = (DataTable)this.SmartGrid1.DataSource;
this.sqlDataAdapter1.Update(t)
;
this.sqlDataAdapter1.Fill(t)
; .SmartGrid1.DataSource = t;
}
이는 데이터를 전체적으로 데이터베이스에 제출하는 것입니다. 이 접근 방식은 대량의 데이터에 적합합니다.
한 줄씩
데이터
를 서버에 제출하는 방법도 있습니다
.btonSave_Click(개체 전송자, System.EventArgs e)
{
DataTable tb=(DataTable)this.SmartGrid1.DataSource;
SqlParameter[] 매개변수=new SqlParameter[5]
foreach(DataRow dr in tb.Rows)
{
매개변수[0]=new SqlParameter("@customerId", ""+dr[1]+"");
매개변수[1]=new SqlParameter("@companyName",""+dr[0]+"")
매개변수[2]=new SqlParameter("@contactName", ""+dr[2]+"");
매개변수[3]=new SqlParameter("@contactTitle",""+dr[3]+"")
매개변수[4]=new SqlParameter("@address", ""+dr[4]+"");
//EamPd는 저장 프로시저를 실행하는 함수입니다. 매개변수는 저장 프로시저에 필요한 매개변수입니다
. ",매개변수);
}
}