Gridview 复合表头

效果图:

WEB页:

<asp:GridView CssClass="grid" ID="grv" AutoGenerateColumns="False" runat="server"
            EnableModelValidation="True" OnRowDataBound="grv_RowDataBound" Width="98%"
            onselectedindexchanged="grv_SelectedIndexChanged">
            <RowStyle CssClass="rowStyle" Wrap="False" />
            <AlternatingRowStyle CssClass="alterStyle" Wrap="False" />
            <Columns>
                <asp:BoundField HeaderText="序号" />
                <asp:BoundField DataField="materialId" HeaderText="物料编号" />
                <asp:BoundField DataField="materialName" HeaderText="物料名称" />
                <asp:BoundField DataField="Spec" HeaderText="物料描述" />
                <%-- <asp:TemplateField HeaderText="设计">
                    <ItemTemplate>
                        <asp:TextBox ID="txtDesign" runat="server" Text=‘<%# Bind("Designer") %>‘ Width="60px"></asp:TextBox>
                    </ItemTemplate>
                </asp:TemplateField>--%>
                <asp:TemplateField HeaderText="下单数量">
                    <ItemTemplate>
                        <asp:TextBox ID="txtTotalNum" runat="server" Text=‘<%# Bind("TotalCount") %>‘ Width="60px"></asp:TextBox>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="是否有条码">
                    <ItemTemplate>
                        <asp:DropDownList ID="ddlIsBarcode" runat="server" Width="50px">
                            <asp:ListItem Value="0">无</asp:ListItem>
                            <asp:ListItem Value="1">有</asp:ListItem>
                        </asp:DropDownList>
                        <asp:Label ID="lblIsBarcode" runat="server" Text=‘<%# Bind("IsExistsBarcode") %>‘
                            Visible="false"></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="状态">
                    <ItemTemplate>
                        <asp:DropDownList ID="ddlIsState" runat="server" Width="60px">
                            <asp:ListItem Value="0">焊接完</asp:ListItem>
                            <asp:ListItem Value="1">喷胶完</asp:ListItem>
                            <asp:ListItem Value="2">老化完</asp:ListItem>
                        </asp:DropDownList>
                        <asp:Label ID="lblIsPj" runat="server" Text=‘<%# Bind("IsPj") %>‘ Visible="false"></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="goodnum" HeaderText="合格数量" />
                <asp:BoundField DataField="repairbacknum" HeaderText="不合格数量" />
                <asp:BoundField DataField="confirmor1" HeaderText="检验人" />
                <asp:BoundField DataField="confirmDate1" HeaderText="检验日期" DataFormatString="{0:yyyy-MM-dd}" />
                <asp:TemplateField HeaderText="下步工序">
                    <ItemTemplate>
                        <asp:DropDownList ID="ddlNextStep" runat="server" Width="50px">
                            <asp:ListItem Value="1">喷胶</asp:ListItem>
                            <asp:ListItem Value="2">老化</asp:ListItem>
                            <asp:ListItem Value="3">入库</asp:ListItem>
                        </asp:DropDownList>
                        <asp:Label ID="lblNextStep" runat="server" Text=‘<%# Bind("Nextstep") %>‘ Visible="false"></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="备 注">
                    <ItemTemplate>
                        <asp:TextBox ID="txtMemo" runat="server" Text=‘<%# Bind("memo") %>‘ Width="100px"></asp:TextBox>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
            <FooterStyle CssClass="grid_foot" />
        </asp:GridView>

designer页:

protected void grv_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.Header)
            {
                #region
                string header = "序号#物料编号#物料名称#物料描述#数量#是否有条码#状态#检验结果 合格数量,不合格数量,检验人,检验日期#下步工序#备注";
                GridViewTHeaderHepler help = new GridViewTHeaderHepler();
                e.Row.CssClass = "fixedHeaderTr";
                e.Row.BackColor = System.Drawing.Color.Beige;
                help.SplitTableHeader(e.Row, header);

//e.Row.Cells[0].Width = 30;
                //e.Row.Cells[1].Width = 110;
                //e.Row.Cells[2].Width = 110;
                //e.Row.Cells[3].Width = 60;
                //e.Row.Cells[4].Width = 30;
                //e.Row.Cells[5].Width = 350;
                //e.Row.Cells[6].Width = 200;
                //e.Row.Cells[7].Width = 90;
                //e.Row.Cells[8].Width = 100;
                #endregion
            } }

时间: 2024-08-30 00:19:11

Gridview 复合表头的相关文章

ASP.NET—014:Gridview复合表头

继续看一个简单的ASP.NET应用.Gridview相信大家使用的比较多了,一般对多行数据进行展示和操作都会用到这个控件.而对于表头,也是很重要的一部分,它负责对数据进行分门别类的.而对于复合表头该如何展示呢?这个也挺简单的.显示复合表头,一般可以在后台通过代码实现.对于表头是由多个Header控件组成的,一般默认的一个Header显示一列.而对于复合表头就是将Header进行设置,让它占用多列或者多行.或者增加很多个Header,然后每个Header分别占用多列或者多行就可以了.来看一个复合的

VB.NET中自定义GridView的多行复合表头

我们都知道单行表头的合并是很好实现的,只需室友横跨列的ColumnSpan属性就可以实现, 但是在开发中,经常遇到表格的多行复合表头设计的问题,怎么扩展GridView控件以实现多行表头呢? ­要点:先定义第一行各占多少行,多少列,再追加第二行,以此类推 主体思路是这样的,GridView在ASP.NET中最终是转化为html的表格格式来显示的,所以我们要在其中做点文章, 看下面这段代码: 1 ''' <summary> 2 ''' 画面レイアウトより.GridViewのヘッダを設定 3 ''

devexpress实现多行表头(复合表头),附源代码

在许多项目中都会涉及到复合表头(多行表头),这里给大家分享一个devexpress实现多重表头的案例. 1.第一步将表格类型由默认的gridview变为bandedgridview,如图所示: 2.第二步添加数据列,与gridview添加数据列相同,设置好绑定字段及其他属性,如图: 3.设计多重表头,如图所示,最上面的表头为Band,可以添加,然后再按自己的要求摆放. 4.拖放完后大致的效果图如下: 5.数据绑定与gridview数据绑定相同,如下: DataTable dt = new Dat

silverlight RadGridView 复合表头 多表头 导出excel

ListHeaderShow.Clear(); ListHeaderShow.Add("区县"); ListHeaderShow.Add("企业名称"); ListHeaderShow.Add("监测点名称"); ListHeaderShow.Add("监测时间"); Util.Export<T_DATA_DATACOMMON> Exportxls = new Util.Export<T_DATA_DATAC

复合表头的RadGridView导出excel

public class Export<T> where T : new() { /// <summary> /// gridview导出excel /// </summary> /// <param name="Ttype">行对应的对象 如T_data_datacommon</param> /// <param name="Tsource">gridview的数据源</param>

EasyUI中DataGrid构建复合表头

在使用easyui的DataGrid控件时,构建复合表头就显得非常简单了.只需要在使用columns属性时通过数组的方式编写列名即可.如我们需要构建成一个如下的表头: Columns的代码如下: columns: [[ { field: '_id', title: '行号', fixed: true, rowspan:2 }, { field: '_j', title: '铁路局', fixed: true, colspan:2 } ], [ { field: '_id', title: '京局

DevExpress GridControl复合表头(多行表头)设置

关于DevExpress.XtraGrid的复合表头或多行表头的示例,界面如下图所示 1.首先要把DevExpress的GridControl转换为BandedGridView 2.设置显示列及绑定的字段 此处设置与我们平常使用GridControl制件一样 3.进入设计视图(见下图),点击Bands, 3.1 添加多个Band,如图中1处按键添加 3.2 布局:拖动相应Band进行布局,根据需要调整Band的位置, 4.3 数据绑定: [点击Show Columns selector 显示之前

DevExpress GridControl 复合表头/表头分层设计.

首先创建一个窗体,将GridControl控件拖到窗体中. 然后 Click here to change view  -> Convert to ->  BandedGridView      Run Designer 按照正常的手法添加Columns. 点击 Bands   添加相应的Bands 列  Bands列可以进行随意的拖拽. 然后将相应的列添加到对应的Bands下面.如图: 这些步骤都完成之后,还要设置一处 : Views -> OptionsView : ShowColu

Gridview 多重表头 (二)

多重表头之排序 这是个有点忧桑的故事...Cynthia告诉我,研究一个问题,我们不可能有超过一天的时间... 结果好好几天过去鸟~~还没有完成... 由于不再使用Gridview自带的表头行,于是无法绑定gridview自带排序方法.只能根据点击列名做不同处理. 我的思路是酱滴,将点击的列名存在一个hiddenfield里,排序时候根据hiddenfield里存储的值作为升/降序的依据. 好丢人的说,第一次的时候存在了label里,每次回传都被label默认值覆盖,后来才发现,不是所有控件都叫