如何在DataGrid中顯示雙標題

控件設置:

<asp:DataGrid id="dgDoubleHeader" runat="server" Width="672px" Height="208px" AutoGenerateColumns="False"
    BorderColor="White" BorderStyle="Ridge" CellSpacing="1" BorderWidth="2px" BackColor="White"
    CellPadding="3" GridLines="None" AllowPaging="True" PageSize="5">
    <SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#9471DE"></SelectedItemStyle>
    <ItemStyle ForeColor="Black" BackColor="#DEDFDE"></ItemStyle>
    <HeaderStyle Font-Bold="True" ForeColor="#E7E7FF" BackColor="#4A3C8C"></HeaderStyle>
    <FooterStyle ForeColor="Black" BackColor="#C6C3C6"></FooterStyle>
    <Columns>
     <asp:BoundColumn DataField="FirstName" HeaderText="FirstName"></asp:BoundColumn>
     <asp:BoundColumn DataField="LastName" HeaderText="LastName"></asp:BoundColumn>
     <asp:BoundColumn DataField="HomePhone" HeaderText="HomePhone"></asp:BoundColumn>
     <asp:BoundColumn DataField="City" HeaderText="City"></asp:BoundColumn>
     <asp:BoundColumn DataField="PostalCode" HeaderText="PostalCode"></asp:BoundColumn>
    </Columns>
    <PagerStyle HorizontalAlign="Right" ForeColor="Black" Position="TopAndBottom" BackColor="#C6C3C6"
     Mode="NumericPages"></PagerStyle>
   </asp:DataGrid>

後臺代碼:

//用來判斷兩個Pager的位置
  private bool upPager=true;
 
  private void Page_Load(object sender, System.EventArgs e)
  {
   // 在此處放置用戶代碼以初始化頁面
   if(!IsPostBack)
    DataGridDataBind();
  }
private void dgDoubleHeader_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
  {
   //獲取DataGrid控件中項的類型
   ListItemType ItemType=e.Item.ItemType;
   //判斷是否是頁導航項
   if(ItemType==ListItemType.Pager)
   {
    //判斷是否是第一個頁導航項
    if(upPager)
    {
     //根據DataGrid控件的項定義單元格對象
     TableCell cellPersonal=(TableCell)e.Item.Controls[0];
     //移出該單元格內的所有控件
     cellPersonal.Controls.Clear();
     //設置單元格對象的背景色
     cellPersonal.BackColor=Color.Orange;
     //設置該單元格對象的前景色
     cellPersonal.ForeColor=Color.Black;
     //設置該單元格對象跨2列
     cellPersonal.ColumnSpan=2;
     //設置該單元格對象的對齊方式爲居中
     cellPersonal.HorizontalAlign=HorizontalAlign.Center;
     //添加單元格內的文本內容
     cellPersonal.Controls.Add(new LiteralControl("姓名"));
     //定義單元格對象
     TableCell cellWork=new TableCell();
     //設置單元格對象的背景色
     cellWork.BackColor=Color.OrangeRed;
     //設置該單元格對象的前景色
     cellWork.ForeColor=Color.Black;
     //設置該單元格對象跨3列
     cellWork.ColumnSpan=3;
     //設置該單元格對象的對齊方式爲居中
     cellWork.HorizontalAlign=HorizontalAlign.Center;
     //添加單元格內的文本內容
     cellWork.Controls.Add(new LiteralControl("聯繫方式"));
     //在該項的控件集合中添加單元格對象
     e.Item.Controls.Add(cellWork);
     //改變Pager標誌
     upPager=false;
    }
   }
  }

  private void dgDoubleHeader_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
  {
   //改變Pager標誌的值使其可以在每次觸發分頁事件時都設置標題頭
   upPager=true;
   //設置新的頁面索引值
   dgDoubleHeader.CurrentPageIndex=e.NewPageIndex;
   //重新進行數據綁定
   DataGridDataBind();
  }

  private void DataGridDataBind()
  {
   //定義數據連接對象,其中數據庫連接字符串是在Web.Config文件中定義的
   SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["DataBaseCon"].ToString());
   conn.Open();
   //創建數據適配器對象
   SqlDataAdapter da=new SqlDataAdapter("select FirstName,LastName,HomePhone,City,PostalCode from Employees",conn);
   //創建DataSet對象
   DataSet ds=new DataSet();
   try
   {
    //填充數據集
    da.Fill(ds,"testTable");
    dgDoubleHeader.DataSource=ds.Tables["testTable"];
    dgDoubleHeader.DataBind();
    conn.Close();
   }
   catch(Exception error)
   {
    Response.Write(error.ToString());
   }
  }

發佈了26 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章