熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

自動填充固定行數的 GridView

2013-11-13 10:04:42  來源: .NET編程 

  在有些開發實踐中有時候為了頁面美觀的需要需要將GridView填充成固定行數的表格下面這個方法實現了這種填充的功能此方法可以處理自動產生列和模版列注意由於時間關系沒有實現對完全空白數據的填充呵呵如果需要可以自己添加哈)! 

  

  C#



<%@ Page Language=C#%>

<!DOCTYPE html PUBLIC //WC//DTD XHTML  Transitional//EN
 transitionaldtd>

<script runat=server>
  // 計算數據完全可以從數據看取得
  ICollection CreateDataSourceByXianhuiMeng()
  {
    SystemDataDataTable dt = new SystemDataDataTable();
    SystemDataDataRow dr;
    dtColumnsAdd(new SystemDataDataColumn(學生班級 typeof(SystemString)));
    dtColumnsAdd(new SystemDataDataColumn(學生姓名 typeof(SystemString)));
    dtColumnsAdd(new SystemDataDataColumn(語文 typeof(SystemDecimal)));
    dtColumnsAdd(new SystemDataDataColumn(數學 typeof(SystemDecimal)));
    dtColumnsAdd(new SystemDataDataColumn(英語 typeof(SystemDecimal)));
    dtColumnsAdd(new SystemDataDataColumn(計算機 typeof(SystemDecimal)));

    for (int i = ; i < ; i++)
    {
      SystemRandom rd = new SystemRandom(EnvironmentTickCount * i); ;
      dr = dtNewRow();
      dr[] = 班級 + iToString();
      dr[] = 【孟子E章】 + iToString();
      dr[] = SystemMathRound(rdNextDouble() *  );
      dr[] = SystemMathRound(rdNextDouble() *  );
      dr[] = SystemMathRound(rdNextDouble() *  );
      dr[] = SystemMathRound(rdNextDouble() *  );
      dtRowsAdd(dr);
    }
    SystemDataDataView dv = new SystemDataDataView(dt);
    return dv;
  }

  // 設置每頁顯示的行數  
  int TotalRowCount = ;
  // 自動填充的行數
  int numCount = ;
  protected void Page_Load(object sender EventArgs e)
  {
    if (!PageIsPostBack)
    {
      GridViewDataSource = CreateDataSourceByXianhuiMeng();
      GridViewDataBind();
    }
  }

  protected void GridView_RowDataBound(object sender GridViewRowEventArgs e)
  {
    if (eRowRowType == DataControlRowTypeDataRow)
    {
      // 計算自動填充的行數
      numCount++;
    }
    if (eRowRowType == DataControlRowTypeFooter)
    {
      // 計算完畢在此添加缺少的行
      int toLeft = TotalRowCount  numCount;
      int numCols = GridViewRows[]CellsCount;

      for (int i = ; i < toLeft; i++)
      {
        GridViewRow row = new GridViewRow(  DataControlRowTypeEmptyDataRow DataControlRowStateNormal);
        for (int j = ; j < numCols; j++)
        {
          TableCell cell = new TableCell();
          cellText = &nbsp;;
          rowCellsAdd(cell);
        }
        GridViewControls[]ControlsAddAt(numCount +  + i row);
      }
    }
  } 
</script>

<html xmlns=>
<head runat=server>
  <title>自動填充固定行數的 GridView</title>
</head>
<body>
  <form id=form runat=server>
    <asp:GridView ID=GridView runat=server OnRowDataBound=GridView_RowDataBound
      FontSize=px CellPadding=>
      <HeaderStyle BackColor=#EDEDED />
      <Columns>
        <asp:TemplateField HeaderText=模版列>
          <ItemTemplate>
            <%#Eval(學生姓名) %>
          </ItemTemplate>
        </asp:TemplateField>
      </Columns>
    </asp:GridView>
  </form>
</body>
</html>

From:http://tw.wingwit.com/Article/program/net/201311/12482.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.