我用文本框和按钮创建了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。请帮忙。
答案 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;
}