比方说DataGrid的pagesize=20,数据库里只有5条数据,DataGrid会只显示5条,整个页面布局都乱了。有无办法让他既是数据不足20条,也可正常显示大小,其他使用空白行填充

解决方案 »

  1.   

    可以设置DataGrid高度啊,正好等于20行的大小。
      

  2.   

    在DATASET中补入需填充的空行就OK了。
      

  3.   

    Private Sub FillBlankRow()
            Dim gridDataRow As DataRow                    
            Dim gridDataSet As DataSet                    
            Dim gridDataTable As DataTable                
            Dim gridDataColumn As DataColumn              
            Dim columnName(8) As String
            Dim i As Integer        columnName(0) = "会社"        gridDataSet = New DataSet
            gridDataTable = New DataTable("myGive")        For i = 0 To 0
                gridDataColumn = New DataColumn
                gridDataColumn.ColumnName = columnName(i)
                gridDataTable.Columns.Add(gridDataColumn)
            Next        gridDataSet.Tables.Add(gridDataTable)
            For i = 0 To 12
                gridDataRow = gridDataTable.NewRow()
                gridDataRow("会社") = "000000"
                gridDataTable.Rows.Add(gridDataRow)
            Next
            TableMaintenanceDataGrid1.DataSource = gridDataSet
            TableMaintenanceDataGrid1.DataBind()    End Sub
      

  4.   

    在绑定 DataGrid 之前,如 DataGrid 的数据源为 DataSet1.Tables[0]
    检查数据源的行数:
    int rows = DataSet1.Tables[0].Rows.Count;
    if(rows<20)
    {
      // 给DataSet1.Tables[0] 补充空的DataRow
    }// 绑定DataGrid
      

  5.   

    很简单
    你去html中把datagrid 的height属性删除就可以了
      

  6.   

    (横刀夺爱) 的方法也是我现在用的,我想知道有没有更好的办法
    沉觉不醒) height属性去掉,每一行都变宽,这不是一个解决办法!
      

  7.   

    自己写了一个
    /// <summary>
    /// 设置数据集的行数
    /// </summary>
    /// <param name="ds">需要补充空白记录的数据集</param>
    /// <param name="displayCount">displayCount DataGrid控件每页所显示的记录数量</param>
    public void setRowCount(ref DataView dv,int displayCount)
    {
    int rowCount=dv.Table.Rows.Count;
    int rowNullCount;
    DataRow dr; rowNullCount=displayCount - SqlInt16.Mod((SqlInt16)rowCount,(SqlInt16)displayCount).Value;
    if (rowNullCount<displayCount)
    {
    for (int i=1;i<=rowNullCount;i++)
    {
    dr=dv.Table.NewRow();
    dv.Table.Rows.Add(dr);
    }
    }
    if (rowNullCount==displayCount && rowCount==0)
    {
    for (int i=1;i<=rowNullCount;i++)
    {
    dr=dv.Table.NewRow();
    dv.Table.Rows.Add(dr);
    }
    }
     
    }