C# 使用sqlCommand更改动态gridview中的headertext

C# 使用sqlCommand更改动态gridview中的headertext,c#,gridview,headertext,C#,Gridview,Headertext,我创建了一个动态gridview,并通过电子邮件发送。但除了headertext之外,其他都可以。我似乎找不到如何定义headertext 我的sqlCommand显示4列,但使用时: LabelTest.Text = "Init Count: " +grd.Columns.Count; 它显示,初始化计数:0 因此,我尝试执行grd.Columns[0].HeaderText=“Something”设置标题文本,但似乎没有任何效果。我还尝试将0改为3,4,5,但问题相同 错误是: Syst

我创建了一个动态gridview,并通过电子邮件发送。但除了headertext之外,其他都可以。我似乎找不到如何定义headertext

我的sqlCommand显示4列,但使用时:

 LabelTest.Text = "Init Count: " +grd.Columns.Count;
它显示,初始化计数:0

因此,我尝试执行
grd.Columns[0].HeaderText=“Something”
设置标题文本,但似乎没有任何效果。我还尝试将0改为3,4,5,但问题相同

错误是:

System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index at System.Collections.ArrayList.get_Item(Int32 index) at..
有什么想法吗?多谢各位


编辑:我是如何创建gridview的:

GridView grd = new GridView();

        // Css style voor de gridview

        grd.BorderStyle = System.Web.UI.WebControls.BorderStyle.None;
        grd.GridLines = GridLines.None;
        grd.RowStyle.HorizontalAlign = HorizontalAlign.Center;

        grd.Columns[0].HeaderText = "Something"; //error
        grd.Width = 600;
        LabelTest.Text = "Init Count: " +grd.Columns.Count;

        foreach (DataControlField field in grd.Columns)
        {
            field.ItemStyle.Width = Unit.Percentage(100 / grd.Columns.Count);
        }

        if (sendGrid != null)
        {
            grd.DataSource = sendGrid.ExecuteReader();
            grd.DataBind();
        }
sendGrid是我在其中选择4列的sqlCommand的名称

foreach语句只会将我的列彼此分开一点。除此之外,我没有指定任何列来设置headertext。

如果您使用

数据控制字段

要添加列,请设置其

RowHeaderColumn


属性,然后将其添加到GridView。

@Niklas:这是什么意思?grd是我的gridview的id<代码>GridView grd=新建GridView()你不需要先绑定它然后才能计算吗?而且,这似乎解决了同样的问题:是的,我应该先这么做Niklas。我只是更改了数据库表的名称。问题也解决了。这并不是我想要做的,但还好。我会上传我的gridview代码,因为它太复杂了。除了设置网格视图的宽度外,我正在使用描述的2U中的非。