web-dev-qa-db-de.com

Fügen Sie eine neue Zeile in DataTable ein

Ich habe eine Datentabelle gefüllt mit Personendaten wie ..

Staff 1 - Day 1 - Total
Staff 1 - Day 2 - Total
Staff 1 - Day 3 - Total
Staff 2 - Day 1 - Total
Staff 2 - Day 2 - Total
Staff 2 - Day 3 - Total
Staff 2 - Day 4 - Total

Ich möchte ändern, so dass das Ergebnis sth wie sein würde ..

Staff 1 - Day 1 - Total
Staff 1 - Day 2 - Total
Staff 1 - Day 3 - Total
Total   -       - Total Value
Staff 2 - Day 1 - Total
Staff 2 - Day 2 - Total
Staff 2 - Day 3 - Total
Staff 2 - Day 4 - Total
Total   -       - Total Value

zum Abschluss muss ich die Gesamtzeile am Ende jedes Mitarbeiterdatensatzes einfügen.

Meine Frage ist also, wie man eine Zeile in eine Datentabelle einfügt. Tkz ..

41
william
// get the data table
DataTable dt = ...;

// generate the data you want to insert
DataRow toInsert = dt.NewRow();

// insert in the desired place
dt.Rows.InsertAt(toInsert, index);
59
Timwi

@William Sie können die NewRow-Methode der Datentabelle verwenden, um ein leeres Datenfeld und das Schema als das der Datentabelle zu erhalten. Sie können dieses Datenfeld mit Daten füllen und dann die Zeile mit .Rows.Add(DataRow) OR .Rows.InsertAt(DataRow, Position) zur Datentabelle hinzufügen. Im Folgenden finden Sie einen Stub-Code, den Sie nach Belieben ändern können.

//Creating dummy datatable for testing
DataTable dt = new DataTable();
DataColumn dc = new DataColumn("col1", typeof(String));
dt.Columns.Add(dc);

dc = new DataColumn("col2", typeof(String));
dt.Columns.Add(dc);

dc = new DataColumn("col3", typeof(String));
dt.Columns.Add(dc);

dc = new DataColumn("col4", typeof(String));
dt.Columns.Add(dc);

DataRow dr = dt.NewRow();

dr[0] = "coldata1";
dr[1] = "coldata2";
dr[2] = "coldata3";
dr[3] = "coldata4";

dt.Rows.Add(dr);//this will add the row at the end of the datatable
//OR
int yourPosition = 0;
dt.Rows.InsertAt(dr, yourPosition);
81
samar
// create table
var dt = new System.Data.DataTable("tableName");

// create fields
dt.Columns.Add("field1", typeof(int));
dt.Columns.Add("field2", typeof(string));
dt.Columns.Add("field3", typeof(DateTime));

// insert row values
dt.Rows.Add(new Object[]{
                123456,
                "test",
                DateTime.Now
           });
19
gpaoli

Sie können das tun, ich verwende 

Datentabelle 1.10.5

mit diesem Code:

var versionNo = $.fn.dataTable.version;
alert(versionNo);

So füge ich mit row.add (Meine Tabelle enthält 10 Spalten) einen neuen Datensatz in meine DataTable ein, der auch HTML-Tag-Elemente enthalten kann:

function fncInsertNew() {
            var table = $('#tblRecord').DataTable();

            table.row.add([
                    "Tiger Nixon",
                    "System Architect",
                    "$3,120",
                    "2011/04/25",
                    "Edinburgh",
                    "5421",
                    "Tiger Nixon",
                    "System Architect",
                    "$3,120",
                    "<p>Hello</p>"
            ]).draw();
        }

Verwenden Sie für mehrere Einfügungen gleichzeitig rows.add :

var table = $('#tblRecord').DataTable();

table.rows.add( [ {
        "Tiger Nixon",
        "System Architect",
        "$3,120",
        "2011/04/25",
        "Edinburgh",
        "5421"
    }, {
        "Garrett Winters",
        "Director",
        "$5,300",
        "2011/07/25",
        "Edinburgh",
        "8422"
    }]).draw();
0
Willy David Jr