2016-12-22 3 views
1

I enter image description hereWie fügt dynamisch Zeilen in Datentabelle mit Textfeld ASP.NET

Es arbeitet dynamisch mit 3 Textfeld Feld hinzufügen müssen, aber das Problem ist, ich nicht die Vorschaubilder speichern können Datensätze, die die Daten verursachen‘ Tabelle neu schreiben im Falle des Objekts.

private void AgregarFila() 
{ 
    dt.Columns.Add("Fecha", typeof(String)); 
    dt.Columns.Add("Documento", typeof(String)); 
    dt.Columns.Add("Folio", typeof(Int32)); 

    for (int i = 0; i <= 2; i++) // It is only for testing 
    { 
     dtRow = dt.NewRow(); 
     dtRow["Fecha"] = Session["HCfecha"]; 
     dtRow["Documento"] = Session["HCDocumento"]; 
     dtRow["Folio"] = Session["HCFolio"]; 
     dt.Rows.Add(dtRow); 
    } 
    gvHistoriaLaboral.DataSource = dt; 
    gvHistoriaLaboral.DataBind(); 
} 

View.aspx

<asp:DataGrid ID="gvHistoriaLaboral" GridLines="None" CssClass="table table-striped" runat="server"></asp:DataGrid> 

Hilfe!

+0

Bitte klarstellen: Wollen Sie sagen, dass die Daten nicht gespeichert werden, und wenn Sie BIND zum Grid nichts zeigt? Wenn ja, führe dt.AccepChanges() nach deinem FOR LOOP aus. –

Antwort

1

Sie sollten Ihre Datentabelle in der Session speichern, so dass es später zugänglich ist, wie folgt aus:

private void AgregarFila() 
{ 
    if (Session["miTabla"] == null) //New table, create table and save it with the new record in Session variable 
    { 
     dt.Columns.Add("Fecha", typeof(String)); 
     dt.Columns.Add("Documento", typeof(String)); 
     dt.Columns.Add("Folio", typeof(Int32)); 
     dtRow = dt.NewRow(); 
     dtRow["Fecha"] = Session["HCfecha"]; 
     dtRow["Documento"] = Session["HCDocumento"]; 
     dtRow["Folio"] = Session["HCFolio"]; 
     dt.Rows.Add(dtRow); 
     Session["miTabla"] = dt; 
    } 
    else 
    { 
     dt = (DataTable) Session["miTabla"]; //Read Session variable 
     for (int i = 0; i <= 2; i++) 
     { 
      dtRow = dt.NewRow(); 
      dtRow["Fecha"] = Session["HCfecha"]; 
      dtRow["Documento"] = Session["HCDocumento"]; 
      dtRow["Folio"] = Session["HCFolio"]; 
      dt.Rows.Add(dtRow); 
     } 
     Session["miTabla"] = dt; //Write Session variable after record added  
    } 
    gvHistoriaLaboral.DataSource = dt; 
    gvHistoriaLaboral.DataBind(); 
} 

Der Session-Variablen Wert bleibt für die aktuelle Benutzersitzung so, wenn ein neuer Datensatz eingefügt wird, Sie lesen gerade diese Variable , parsen Sie es zu einer DataTable, fügen Sie den neuen Datensatz hinzu und speichern Sie die DataTable dann wieder in der Sitzung.

Für weitere Informationen oder andere Möglichkeiten, es zu tun: ASP .NET State Management

Grüße!

+0

Vielen Dank! es funktionierte! – krlosruiz

Verwandte Themen