توضیحات و دانلود

تبدیل ستونهای GridView به ردیف و ردیف به ستون ( Rotate GridView ) در ASP.Net
0 0
تبدیل ستونهای GridView به ردیف و ردیف به ستون ( Rotate GridView ) در ASP.Net

با سلام در این مقاله نحوه Rotate / Flip / Transpose ستون های GridView به ردیف و ردیف به ستون را با کلیک روی یک دکمه در ASP.Net توضیح خواهیم داد.
کد HTML
در زیرکد HTML  وجود دارد که دارای کنترل GridView و دو دکمه یکی برای Rotate / Flip / Transpose کردن ستون های GridView به ردیف ها و دیگری برای Rotate / Flip / Transpose ردیف های GridView به ستون ها است .

<asp:GridView ID="GridView1" CssClass="Grid" HeaderStyle-CssClass="header" runat="server"
    AutoGenerateColumns="true">
</asp:GridView>
<br />
<asp:Button ID="btnConvert1" runat="server" Text="Convert Rows to Columns" OnClick="Convert"
    CommandArgument="1" />
<asp:Button ID="btnConvert2" runat="server" Text="Convert Columns to Rows" OnClick="Convert"
    CommandArgument="2" Visible="false" />

در Rotate / Flip / Transpose در ستون های GridView ، GridView شما باید در AutoGenerateColumns = "true"  تنظیم باشد.
فضاهای نام
باید نامهای زیر را وارد کنید
C #

using System.Data;

VB.Net

Imports System.Data

در اتصال کنترل GridViewزیر کد مربوط به اتصال GridView وجود دارد. متوجه خواهید شد که متغیر DataTable را در ViewState ذخیره می کنیم تا بعداً استفاده مجدد شود. روش BindGrid یک پارامتر اضافی rotate که براساس آن هدرهای GridView را مخفی میکند و نشان می دهد.

C #

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        DataTable dt = new DataTable();
        dt.Columns.AddRange(new DataColumn[3] { new DataColumn("Item"), new DataColumn("Quantity"), new DataColumn("Price") });
        dt.Rows.Add("Shirt", 145, 500);
        dt.Rows.Add("Jeans", 0, 2000);
        dt.Rows.Add("Trousers", 190, 1545);
        dt.Rows.Add("Tie", 30, 200);
        dt.Rows.Add("Cap", 0, 300);
        dt.Rows.Add("Hat", 90, 350);
        dt.Rows.Add("Scarf", 290, 140);
        dt.Rows.Add("Belt", 150, 400);
        ViewState["dt"] = dt;
        BindGrid(dt, false);
    }
}
 
private void BindGrid(DataTable dt, bool rotate)
{
    GridView1.ShowHeader = !rotate;
    GridView1.DataSource = dt;
    GridView1.DataBind();
    if (rotate)
    {
        foreach (GridViewRow row in GridView1.Rows)
        {
            row.Cells[0].CssClass = "header";
        }
    }
}

VB.Net

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
    If Not IsPostBack Then
        Dim dt As New DataTable()
        dt.Columns.AddRange(New DataColumn(2) {New DataColumn("Item"), New DataColumn("Quantity"), New DataColumn("Price")})
        dt.Rows.Add("Shirt", 145, 500)
        dt.Rows.Add("Jeans", 0, 2000)
        dt.Rows.Add("Trousers", 190, 1545)
        dt.Rows.Add("Tie", 30, 200)
        dt.Rows.Add("Cap", 0, 300)
        dt.Rows.Add("Hat", 90, 350)
        dt.Rows.Add("Scarf", 290, 140)
        dt.Rows.Add("Belt", 150, 400)
        ViewState("dt") = dt
        BindGrid(dt, False)
    End If
End Sub
 
Private Sub BindGrid(dt As DataTable, rotate As Boolean)
    GridView1.ShowHeader = Not rotate
    GridView1.DataSource = dt
   GridView1.DataBind()
    If rotate Then
        For Each row As GridViewRow In GridView1.Rows
            row.Cells(0).CssClass = "header"
        Next
    End If
End Sub

Rotate / Flip / Transpose ستون های GridView به ردیف ها و ردیف ها به ستون ها
در کد زیر از دو DataTable استفاده می کنیم ، یکی اصلی از متغیر ViewState و دیگری برای ذخیره سطرهای Rotate / Flip / Transpose استفاده می کنیم.
سرانجام DataTable در Rotate / Flip / Transpose به کنترل GridView محدود می شود
C #

protected void Convert(object sender, EventArgs e)
{
    DataTable dt = (DataTable)ViewState["dt"];
    if ((sender as Button).CommandArgument == "1")
    {
        btnConvert1.Visible = false;
        btnConvert2.Visible = true;
        DataTable dt2 = new DataTable();
        for (int i = 0; i <= dt.Rows.Count; i++)
        {
            dt2.Columns.Add();
        }
        for (int i = 0; i < dt.Columns.Count; i++)
        {
            dt2.Rows.Add();
            dt2.Rows[i][0] = dt.Columns[i].ColumnName;
        }
        for (int i = 0; i < dt.Columns.Count; i++)
        {
            for (int j = 0; j < dt.Rows.Count; j++)
            {
                dt2.Rows[i][j + 1] = dt.Rows[j][i];
            }
        }
        BindGrid(dt2, true);
    }
    else
    {
        btnConvert1.Visible = true;
        btnConvert2.Visible = false;
        BindGrid(dt, false);
    }
}

VB.Net

Protected Sub Convert(sender As Object, e As EventArgs)
    Dim dt As DataTable = DirectCast(ViewState("dt"), DataTable)
    If TryCast(sender, Button).CommandArgument = "1" Then
        btnConvert1.Visible = False
        btnConvert2.Visible = True
        Dim dt2 As New DataTable()
        For i As Integer = 0 To dt.Rows.Count
            dt2.Columns.Add()
        Next
        For i As Integer = 0 To dt.Columns.Count - 1
            dt2.Rows.Add()
            dt2.Rows(i)(0) = dt.Columns(i).ColumnName
        Next
        For i As Integer = 0 To dt.Columns.Count - 1
            For j As Integer = 0 To dt.Rows.Count - 1
                dt2.Rows(i)(j + 1) = dt.Rows(j)(i)
            Next
        Next
        BindGrid(dt2, True)
    Else
        btnConvert1.Visible = True
        btnConvert2.Visible = False
        BindGrid(dt, False)
    End If
End Sub

GridView CSS

<style type="text/css">
    .Grid td
    {
        background-color: #eee;
        color: black;
        font-family: Arial;
        font-size: 10pt;
        line-height: 200%;
        cursor: pointer;
        width: 100px;
    }
    .header
    {
        background-color: #6C6C6C !important;
        color: White !important;
        font-family: Arial;
        font-size: 10pt;
        line-height: 200%;
        width: 100px;
        text-align: center;
    }
</style>

 


دانلود
  • لینک های دانلود دوره های آموزشی تا پایان دوره قابل دانلود می باشد.
  • برای خارج کردن فایل ها از حالت فشرده از ورژن جدید نرم افزار winrar استفاده کنید.
  • برای خارج کردن فایل ها از حالت فشرده لینک های دانلودی که چندین قسمت می باشند فقط قسمت اول را از حالت فشرده خارج کنید.
  • لطفا توضیحات نوشته شده برای مطالب را با دقت بخوانید.
  • برای نمایش فیلم ها می توانید از نرم افزار هایی مانند Km Player , VLC Player یا Media Player Classic استفاده کنید.

ارسال نظر
ارسال پیام به :