如何在gridview中切换列和行

如何在gridview中切换列和行,gridview,Gridview,不希望使用listview或datalist。但我正试图弄清楚如何切换我的列和行 例如,我的列是projectname、projectaddress等。我希望这些列显示为行 任何帮助都将不胜感激。您可以在将数据集加载到gridview之前翻转数据集 private void BindData() { // Fill a dataTable with results // Add the dataTable to a DataSet DataSet ds = new Da

不希望使用listview或datalist。但我正试图弄清楚如何切换我的列和行

例如,我的列是projectname、projectaddress等。我希望这些列显示为行


任何帮助都将不胜感激。

您可以在将数据集加载到gridview之前翻转数据集

private void BindData()
{
    // Fill a dataTable with results

    // Add the dataTable to a DataSet
    DataSet ds = new DataSet();
    ds.Tables.Add(dt);

    // Flip your dataSet
    DataSet new_ds = FlipDataSet(ds);
    new_ds.Tables[0].Rows[0].Delete();

    DataView my_DataView = new_ds.Tables[0].DefaultView;
    gridView.DataSource = my_DataView;
    gridView.DataBind();
}

public DataSet FlipDataSet(DataSet my_DataSet)
{
    DataSet ds = new DataSet();

    foreach(DataTable dt in my_DataSet.Tables)
    {
        DataTable table = new DataTable();

        for(int i=0; i<=dt.Rows.Count; i++)
        {
            table.Columns.Add(Convert.ToString(i));
        }

        DataRow r;

        for(int k=0; k<dt.Columns.Count; k++)
        {
            r = table.NewRow();
            r[0] = dt.Columns[k].ToString();

            for(int j=1; j<=dt.Rows.Count; j++)
                r[j] = dt.Rows[j-1][k];

            table.Rows.Add(r);
        }

        ds.Tables.Add(table);
    }

    return ds;
}

在将数据集加载到gridview之前,可以翻转数据集

private void BindData()
{
    // Fill a dataTable with results

    // Add the dataTable to a DataSet
    DataSet ds = new DataSet();
    ds.Tables.Add(dt);

    // Flip your dataSet
    DataSet new_ds = FlipDataSet(ds);
    new_ds.Tables[0].Rows[0].Delete();

    DataView my_DataView = new_ds.Tables[0].DefaultView;
    gridView.DataSource = my_DataView;
    gridView.DataBind();
}

public DataSet FlipDataSet(DataSet my_DataSet)
{
    DataSet ds = new DataSet();

    foreach(DataTable dt in my_DataSet.Tables)
    {
        DataTable table = new DataTable();

        for(int i=0; i<=dt.Rows.Count; i++)
        {
            table.Columns.Add(Convert.ToString(i));
        }

        DataRow r;

        for(int k=0; k<dt.Columns.Count; k++)
        {
            r = table.NewRow();
            r[0] = dt.Columns[k].ToString();

            for(int j=1; j<=dt.Rows.Count; j++)
                r[j] = dt.Rows[j-1][k];

            table.Rows.Add(r);
        }

        ds.Tables.Add(table);
    }

    return ds;
}

我的数据没有预加载到数据集中,而是直接从sqldatasource放入gridview。请参见下文:@user1281748据我所知,您不能使用sqldatasource或gridview设置翻转源。您可以将SQLDataSource的结果转换为数据集,然后执行我上面发布的操作。如果您需要一个如何将SQLDataSource获取到dataTable的示例,请查看此示例。非常感谢你的帮助!!欢迎光临!如果答案正是你需要的,别忘了接受它。此外,由于这是您第一次在这里提问,您可能希望查看常见问题解答。欢迎来到StackOverflow!我将/*从sql数据源创建数据视图/dataview dv=DataViewgvDataSource.SelectDataSourceSelectArguments.Empty;/将dataview转换为datatable*/datatable dt=dv.ToTable;我的数据没有预加载到数据集中,而是直接从sqldatasource放入gridview。请参见下文:@user1281748据我所知,您不能使用sqldatasource或gridview设置翻转源。您可以将SQLDataSource的结果转换为数据集,然后执行我上面发布的操作。如果您需要一个如何将SQLDataSource获取到dataTable的示例,请查看此示例。非常感谢你的帮助!!欢迎光临!如果答案正是你需要的,别忘了接受它。此外,由于这是您第一次在这里提问,您可能希望查看常见问题解答。欢迎来到StackOverflow!我将/*从sql数据源创建数据视图/dataview dv=DataViewgvDataSource.SelectDataSourceSelectArguments.Empty;/将dataview转换为datatable*/datatable dt=dv.ToTable;