((BoundField)GridView1.Columns[0]).DataField = "ID";
                        ((BoundField)GridView1.Columns[0]).HeaderText = "代码";
                        ((BoundField)GridView1.Columns[1]).DataField = "HJName";
                        ((BoundField)GridView1.Columns[1]).HeaderText = "环境名称";
                        ((BoundField)GridView1.Columns[3]).DataField = "CuXiaoYu";
                        ((BoundField)GridView1.Columns[3]).HeaderText = "促销语";
------前台
 <asp:GridView ID="GridView1" AutoGenerateColumns="False" CellPadding="5" GridLines="None"
            EmptyDataText="暂无任何项目 ..."  runat="server"  OnRowCommand="GridView1_RowCommand">
            <Columns>
                <asp:BoundField />
                <asp:BoundField />
                <asp:BoundField />
                <asp:BoundField />
                <asp:BoundField />
                <asp:BoundField />
                <asp:BoundField />
                <asp:BoundField />
                <asp:BoundField />
                <asp:BoundField />
                <asp:BoundField />
                <asp:BoundField />
                <asp:BoundField />
                <asp:BoundField />
                <asp:BoundField />
                <asp:BoundField />
                <asp:BoundField />
                <asp:BoundField />
                <asp:BoundField />怎么移除多的(是空的)BoundField ???

解决方案 »

  1.   

    AutoGenerateColumns="false"
    去掉,设为默认的就好。
      

  2.   

    参考:
    ====================
    <asp:GridView ID="GridView1"  ondatabinding="GridView1_DataBinding" onrowdatabound="GridView1_RowDataBound" ></asp:GridView>protected void Page_Load(object sender, EventArgs e)
    {
        GridView1.DataBind();
    }
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.Header)
        {
            string[] txt = new string[] { "列0", "列1", "列2", "列3" };
            for(int i=0;i<e.Row.Cells.Count;i++)
                e.Row.Cells[i].Text=txt[i];
        }
    }
    protected void GridView1_DataBinding(object sender, EventArgs e)
    {
        DataTable dt = new DataTable();
        dt.Columns.Add("col0");
        dt.Columns.Add("col1");
        dt.Columns.Add("col2");
        dt.Columns.Add("col3");
        dt.Rows.Add("r00", "r01", "r02", "r03");
        dt.Rows.Add("r10", "r11", "r12", "r13");
        dt.Rows.Add("r20", "r21", "r22", "r23");
        dt.Rows.Add("r30", "r31", "r32", "r33");
        GridView1.DataSource = dt;
    }
      

  3.   

    <asp:GridView ID="GridView1" runat="server" ondatabinding="GridView1_DataBinding" onrowdatabound="GridView1_RowDataBound" ></asp:GridView>
      

  4.   

    AutoGenerateColumns="true"
    select a As '' from Tb
    否则根据列值,隐藏列
      

  5.   

    <asp:BoundColumn DataField="111" HeaderText="222" ItemStyle-HorizontalAlign="center"> </asp:BoundColumn>
    111是你绑定的那个LIST里的实体集里有的参数
    222是你在页面上列显示的参数
    这样就能你实体集里有的参数,你在页面上加了就可以显示,不加就不显示
    当然你数据库里查到的结果没这个属性就没办法显示了