asp.net中gridview的列标题

时间:2017-05-25 05:26:07

标签: c# asp.net sql-server gridview

我用文本框和按钮创建了gridview。在文本框中,我可以输入要添加到网格的列数所需的数字。列标题应该像t1,t2一样改变......这是我的代码。

protected void Page_Load(object sender, EventArgs e)
{
 if (!IsPostBack)
    {
        griddisplay();
    }
}
public void griddisplay()
{
    con.Open();
    SqlCommand cmd = new SqlCommand("SELECT * FROM testclientinfo", con);
    SqlDataReader dr = cmd.ExecuteReader();
    GridView1.DataSource = dr;
    GridView1.DataBind();
    con.Close();
}

protected void btnadd_Click(object sender, EventArgs e)
{
    int num;
    num = Convert.ToInt32(txtnumber.Text.Trim());
    for (int i = 1; i <= num; i++)
    {


        string name = "t";
        name = string.Concat(name, i);
        BoundField test = new BoundField();
        test.HeaderText = name;
        GridView1.Columns.Add(test);

    }
}

问题是1.columns被添加为第二次单击添加按钮,当我在文本框中输入数字并单击添加按钮列时不添加。 例如,如果我在文本框t1&amp;中输入2。添加t2列,再次点击添加列标题时应该是t3&amp; t4但是又添加了t1和t2。请帮忙。

1 个答案:

答案 0 :(得分:0)

不确定问题1,但问题2可以解决如下。

在身份columnAdded的aspx中添加一个隐藏字段,并将其值设置为&#34; 0&#34;。

<input type="hidden" runat="server" value="0" id="columnAdded"/>

代码

protected void btnadd_Click(object sender, EventArgs e)
{
    int num;
    num = Convert.ToInt32(txtnumber.Text.Trim());
    int addedColumn = Convert.ToInt32(columnAdded.Value);
    for (int i = addedColumn + 1; i <= addedColumn + num; i++)
    {
        string name = "t";
        name = string.Concat(name, i);
        BoundField test = new BoundField();
        test.HeaderText = name;
        GridView1.Columns.Add(test);

    }
    columnAdded.Value = addedColumn + num;
}