zoukankan      html  css  js  c++  java
  • Gridview多级复杂表头

    设计GridView多级复杂表头,在实现过程中有几个问题:

    1、如何控制表头中字体颜色、背景色的控制

    2、C#中也有VB中IIF的写法:

    newRow["1Rev"] = String.IsNullOrEmpty(strRev[1]) ? "" : String.Format("{0:#,##0}", Convert.ToDouble(strRev[1]));
    

    3、可以给字符串付空值:string myString = null;

    4、判断SQL查询字段是否为null,可以使用:myrow[0] == System.DBNull.Value 为true?

    5、Convert.ToString(myrow[0]),如果myrow[0]为空,返回""。

    6、从ASP.NET编程之道上抄来的例子:

    后台View Code
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;

    public partial class GridviewMultiHeader : System.Web.UI.Page
    {
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
    {
    switch (e.Row.RowType)
    {
    case DataControlRowType.Header://被创建的行是标题行
    TableCellCollection tcHeader = e.Row.Cells;//取得标题行的单元格集合
    tcHeader.Clear();//清空标题行的单元格集合
    //添加一级表头
    tcHeader.Add(new TableHeaderCell());
    tcHeader[0].Attributes.Add("rowspan", "3"); //跨3行
    tcHeader[0].Attributes.Add("bgcolor", "white");
    tcHeader[0].Text = "盘点期间";
    tcHeader.Add(new TableHeaderCell());
    tcHeader[1].Attributes.Add("colspan", "6"); //跨6列
    tcHeader[1].Text = "全部信息</th></tr><tr>";
    //添加二级表头
    tcHeader.Add(new TableHeaderCell());
    tcHeader[2].Attributes.Add("bgcolor", "DarkSeaGreen");
    tcHeader[2].Text = "仓库信息";
    tcHeader.Add(new TableHeaderCell());
    tcHeader[3].Attributes.Add("bgcolor", "LightSteelBlue");
    tcHeader[3].Attributes.Add("colspan", "3");//跨3列
    tcHeader[3].Text = "商品信息";
    tcHeader.Add(new TableHeaderCell());
    tcHeader[4].Attributes.Add("bgcolor", "LightSteelBlue");
    tcHeader[4].Attributes.Add("colspan", "2");//跨2列
    tcHeader[4].Text = "盘点信息</th></tr><tr>";
    //添加三级表头
    tcHeader.Add(new TableHeaderCell());
    tcHeader[5].Attributes.Add("bgcolor", "Khaki");
    tcHeader[5].Text = "仓库名称";
    tcHeader.Add(new TableHeaderCell());
    tcHeader[6].Attributes.Add("bgcolor", "Khaki");
    tcHeader[6].Text = "商品名称";
    tcHeader.Add(new TableHeaderCell());
    tcHeader[7].Attributes.Add("bgcolor", "Khaki");
    tcHeader[7].Text = "规格";
    tcHeader.Add(new TableHeaderCell());
    tcHeader[8].Attributes.Add("bgcolor", "Khaki");
    tcHeader[8].Text = "数量";
    tcHeader.Add(new TableHeaderCell());
    tcHeader[9].Attributes.Add("bgcolor", "Khaki");
    tcHeader[9].Text = "盘点数";
    tcHeader.Add(new TableHeaderCell());
    tcHeader[10].Attributes.Add("bgcolor", "Khaki");
    tcHeader[10].Text = "盘点说明";
    break;
    }
    }
    }
    前台View Code
        <form id="form1" runat="server">
    <div>
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
    DataSourceID="SqlDataSource1" EmptyDataText="没有可显示的数据记录。"
    onrowcreated="GridView1_RowCreated">
    <Columns>
    <asp:BoundField DataField="CheckPeriod" HeaderText="盘点期间"
    SortExpression="CheckPeriod" />
    <asp:BoundField DataField="WareHouseName" HeaderText="仓库名称"
    SortExpression="WareHouseName" />
    <asp:BoundField DataField="ProductName" HeaderText="商品名称"
    SortExpression="ProductName" />
    <asp:BoundField DataField="Specs" HeaderText="规格" SortExpression="Specs" />
    <asp:BoundField DataField="Quantity" HeaderText="数量"
    SortExpression="Quantity" />
    <asp:BoundField DataField="CheckQty" HeaderText="盘点数"
    SortExpression="CheckQty" />
    <asp:BoundField DataField="Memo" HeaderText="盘点说明" SortExpression="Memo" />
    </Columns>
    </asp:GridView>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server"
    ConnectionString="<%$ ConnectionStrings:ExpatiateAspNetConnectionString %>"
    ProviderName="<%$ ConnectionStrings:ExpatiateAspNetConnectionString.ProviderName %>"
    SelectCommand="SELECT [CheckPeriod], [WareHouseName], [ProductName], [Specs], [Quantity], [CheckQty], [Memo], [Warehouse] FROM [V_StoreCheckReport]">
    </asp:SqlDataSource>
    </div>
    </form>

    显示结果为:



  • 相关阅读:
    c:forTokens标签循环输出
    jsp转long类型为date,并且格式化
    spring中@Param和mybatis中@Param使用区别(暂时还没接触)
    734. Sentence Similarity 有字典数组的相似句子
    246. Strobogrammatic Number 上下对称的数字
    720. Longest Word in Dictionary 能连续拼接出来的最长单词
    599. Minimum Index Sum of Two Lists两个餐厅列表的索引和最小
    594. Longest Harmonious Subsequence强制差距为1的最长连续
    645. Set Mismatch挑出不匹配的元素和应该真正存在的元素
    409. Longest Palindrome 最长对称串
  • 原文地址:https://www.cnblogs.com/zhoukaiwei/p/2280985.html
Copyright © 2011-2022 走看看