DataGrid가 페이징을 사용하는 경우 마지막 페이지가 "전체 페이지"가 아닐 수 있으므로 DataGrid의 레이아웃에 문제가 있을 수 있으며 나머지 행이 너무 넓어지고 전체 DataGrid가 보기 흉해집니다.
솔루션은 아마도 다음 세 가지 위치에서 고려될 수 있습니다.
1. DataSource에 새 데이터 행을 채웁니다.
2. DataGrid에서 새로운 빈 제어 행을 채웁니다.
3. 자바스크립트를 사용하여 웹페이지의 새 HTML 컨트롤 행을 채웁니다.
두 번째 방법을 사용했습니다. DataGrid의 사전 렌더링 이벤트에서 바닥글 줄 위의 빈 줄을 채웁니다. 코드는 다음과 같습니다.
protected virtual void SpiderSurfGrid_PreRender(object sender, System.EventArgs e)
{
DataGridItem dgi;
System.Web.UI.WebControls.TableCell 테이블셀;
System.Web.UI.WebControls.TableRow 테이블 행;
DataGrid 그리드 = (DataGrid로 보낸 사람);
if(grid.Controls.Count == 0) 반환;
System.Web.UI.WebControls.Table 테이블 = (grid.Controls[0] as System.Web.UI.WebControls.Table);
tablerow = (System.Web.UI.WebControls.TableRow)(table.Controls[1])
for(int j=this.PageSize+4-table.Controls.Count;j>0;j--)
{
dgi = new DataGridItem(0,0,ListItemType.Item);
for(int i=0;i<tablerow.Controls.Count;i++)
{
tablecell = 새로운 System.Web.UI.WebControls.TableCell();
dgi.Cells.Add(tablecell);
}
table.Controls.AddAt(table.Controls.Count-2,dgi);
}
}
설명: 여기서 고려되는 것은 헤더/바닥글/페이저 행과 아래 페이저가 있는 바인딩된 데이터 그리드입니다.
이상한 점은 여기에 cssstyle을 추가할 수 없다는 것입니다. dgi.cssstyle="dumpTableRowClass"; 성공하면 조언을 부탁드립니다.
원본 작성자: athossmth, 재인쇄 시 명시해 주시기 바랍니다.