Переключение отличительных строк в столбцы набора данных в C # (во фронте) [дубликат]

Его можно обрабатывать с помощью функций синхронизации времени step-end и step-start

Например: https://jsfiddle.net/y72h8Lky/

$(".run").on("click", function() {
    $(".popup").addClass("show");
});
$(".popup").on("click", function() {
    $(".popup").removeClass("show");
})
.popup {
    opacity: 0;
    display: block;
    position: absolute;
    top: 100%;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1450;
    background-color: rgba(0, 175, 236, 0.6);
    transition: opacity 0.3s ease-out, top 0.3s step-end;
}
.popup.show {
    transition: opacity 0.3s ease-out, top 0.3s step-start;
    opacity: 1;
    top: 0;
}


0
задан Andrej Adamenko 29 November 2015 в 16:03
поделиться

3 ответа

.NET не включает метод переноса таблиц данных. Вы должны сделать свой собственный. На этом сайте есть учебник по примеру метода транспонирования. Я скопирую и вставляю фрагмент кода ниже:

private DataTable Transpose(DataTable dt)
{
    DataTable dtNew = new DataTable();

    //adding columns    
    for(int i=0; i<=dt.Rows.Count; i++)
    {
       dtNew.Columns.Add(i.ToString());
    }



    //Changing Column Captions: 
    dtNew.Columns[0].ColumnName = " ";

     for(int i=0; i<dt.Rows.Count; i++) 
     {
      //For dateTime columns use like below
       dtNew.Columns[i+1].ColumnName = Convert.ToDateTime(dt.Rows[i].ItemArray[0].ToString()).ToString("MM/dd/yyyy");
      //Else just assign the ItermArry[0] to the columnName prooperty
     }

    //Adding Row Data
    for(int k=1; k<dt.Columns.Count; k++)
    {
        DataRow r = dtNew.NewRow();
        r[0] = dt.Columns[k].ToString(); 
        for(int j=1; j<=dt.Rows.Count; j++)
        r[j] = dt.Rows[j-1][k];  
        dtNew.Rows.Add(r);
    }

 return dtNew;
}
4
ответ дан Chris Tramel 24 August 2018 в 19:51
поделиться

Создайте новую таблицу с измененными размерами от того, что у вас было ранее, и назначьте предыдущие столбцы новым строкам, а старые строки - новым столбцам.

например:

oldCol1 -> newRow1
oldCol2 -> newRow2
oldCol3 -> newRow3
oldCol4 -> newRow4
oldRow1 -> newCol1
oldCol2 -> newCol2
oldvar[a][b] -> newvar[b][a]

, и список продолжается, если вы перейдете от

col1 || col2 || col3 || col4
row1 ||[a][b]||[c][d]||[e][f]
row2 ||[g][h]||[i][j]||[k][l]

к

row1 || col1 || col2
row2 ||[a][b]||[g][h]
row3 ||[c][d]||[i][j]
row4 ||[e][f]||[k][l]
0
ответ дан Azulflame 24 August 2018 в 19:51
поделиться
DataTable newDt = new DataTable();
//Select indexes
var indexes = dt.Rows.Cast<DataRow>().Select(row => dt.Rows.IndexOf(row));
//Select the columns
var newCols = indexes.Select(i => "Row" + i);
//Add columns
foreach(var newCol in newCols)
{
  newDt.Add(newCol);
}
//Select rows
var newRows = dt.Rows.Cast<DataColumn>().Select(col =>
                                                  {
                                                    row = newDt.NewRow();
                                                    foreach(int i in indexes)
                                                    {
                                                      row[i] = dt.Rows[i][col.Name];
                                                    }
                                                    return row;
                                                  });
//Add row to new datatable
foreach(var row in newRows)
{
  newDt.Add(row);
}
0
ответ дан LukeHennerley 24 August 2018 в 19:51
поделиться