Gridview多级复杂表头

让人想犯罪 __ 提交于 2020-03-25 21:40:52

设计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>

显示结果为:



 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!