2017-05-25 6 views
0

Ich habe Gridview mit Textbox und Schaltfläche erstellt. In Textfeld kann ich die erforderliche Anzahl für die Anzahl der Spalten eingeben, die ich dem Raster hinzufügen möchte. Der Spaltenkopf sollte sich wie t1, t2 ändern ... Hier ist mein Code.Spaltenüberschriften von Gridview in asp.net

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); 

    } 
} 

Probleme sind 1.columns für zweiten Klick auf Schaltfläche Hinzufügen hinzugefügt werden, wenn ich Nummer in Textfeld ein und klicken Sie auf Schaltfläche Hinzufügen Spalt hinzugefügt. 2. Zum Beispiel, wenn ich 2 in Textfeld t1 & t2 Spalten hinzugefügt werden, wieder, wenn Sie auf add Spaltenüberschrift klicken sollte t3 & t4 aber wieder t1 und t2 hinzugefügt werden. Bitte helfen Sie.

+0

Antwort auf das erste Problem besteht darin, unter Aufruf in page_load put'griddisplay' 'if (! IsPostBack)'. –

+0

@ChetanRanpariya Es funktioniert nicht – nirmala

+0

Sie müssen noch zwei Klicks zum Hinzufügen von Spalten tun? Können Sie den Code, den Sie geändert haben, aktualisieren? –

Antwort

0

Nicht sicher über Problem 1, aber Problem 2 kann wie folgt gelöst werden.

Fügen Sie ein verstecktes Feld in aspx mit der ID columnAdded hinzu und setzen Sie den Wert auf "0".

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

In Code

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; 
} 
+0

Vielen Dank, dass Sie meine Ausgabe – nirmala

+0

gelöst haben, sind Sie willkommen – Imad