1

我有 DataTable这样的:

在此处输入图像描述

我需要将“标题 1-2-3”列合并为一个,如下所示:

在此处输入图像描述

可惜GridView.TableCell不能在这里应用。如何使用 C# ASP.NET 组合列?

4

2 回答 2

0

你可以使用这样的东西

   <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
        <Columns>
            <asp:BoundField DataField="address" HeaderText="address" visible="false"/>
            <asp:BoundField DataField="city" HeaderText="city" visible="false"/>
            <asp:BoundField DataField="region" HeaderText="region" visible="false"/>
            <asp:BoundField DataField="postalcode" HeaderText="postalcode" visible="false"/>
            <asp:TemplateField HeaderText="Full Address">
                <ItemTemplate>
                    <asp:Label ID="Label1" runat="server" Text="Label">
                        <%# Eval("address") + ", " + Eval("city") + ", " + Eval("region") + ", " + Eval("postalcode")%>
                    </asp:Label>                        
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>

那么您需要做的就是返回所需的“绑定”数据,然后让模板完成其余的工作:

    private void LoadEmployeeAddress()
    {
        string con = ConfigurationManager.AppSettings["NorthwindDatabase"];
        string sql = "select address, city, region, postalcode from employees;";

        DataSet ds = new DataSet();
        SqlDataAdapter da = new SqlDataAdapter(sql, con);
        da.Fill(ds);

        GridView1.DataSource = ds.Tables[0];
        GridView1.DataBind();
    }
于 2013-10-25T14:36:47.980 回答
0

您可以使用 asp.net 中继器而不是 gridview。

中继器 DataSource 将是您的表格来源,不要忘记 DataDind() 中继器。

然后在中继器的 itemdatabound (rpeaterId.ItemDataBound += {by press += visual studio 将建议通过按两次 Tab 按钮为您创建方法:) }) 功能中,您可以为标题设置 if 语句

如果您需要更多帮助,则需要编写更多代码。

我希望这会给您带来启发并帮助您解决问题。干杯!

于 2013-10-25T14:05:54.717 回答