Как я могу изменить ориентацию gridview, используя c # asp.net? - PullRequest
0 голосов
/ 09 февраля 2019

Я хочу знать, есть ли способ изменить GridView с горизонтального на вертикальное расположение?

Пожалуйста, помогите мне решить эту проблему.В любом случае, где я могу получить желаемый результат (как показано на рисунке) через CSS или через C# код.Все данные в GridView являются динамическими.Я более свежий, пожалуйста, помогите мне.

enter image description here

Вот мой код:

Код ASPX

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
  <Columns>
    <asp:TemplateField HeaderText="ID">
      <ItemTemplate>
        <asp:Label
          ID="lblID"
          runat="server"
          Text='<%# 
    Eval("ID") %>'
        ></asp:Label>
      </ItemTemplate>

      <ItemStyle />
    </asp:TemplateField>
    <asp:TemplateField HeaderText="Date">
      <ItemTemplate>
        <asp:Label
          ID="lblDate_From"
          runat="server"
          Text='<%# 
       Eval("Date_From") %>'
        ></asp:Label>
      </ItemTemplate>
      <EditItemTemplate>
        <asp:TextBox
          ID="txtDate_From"
          runat="server"
          Text='<%# 
      Eval("Date_From") %>'
          Width="140"
        ></asp:TextBox>
      </EditItemTemplate>
      <ItemStyle />
    </asp:TemplateField>

    <asp:TemplateField HeaderText="Name">
      <ItemTemplate>
        <asp:Label
          ID="lblEmp_Name"
          runat="server"
          Text='<%# 
      Eval("EmpName") %>'
        ></asp:Label>
      </ItemTemplate>
      <EditItemTemplate>
        <asp:TextBox
          ID="txtEmpName"
          runat="server"
          Text='<%# Eval("EmpName") %>'
          Width="140"
        ></asp:TextBox>
      </EditItemTemplate>
      <ItemStyle />
    </asp:TemplateField>

    <asp:TemplateField HeaderText="Employee_Designation">
      <ItemTemplate>
        <asp:Label
          ID="lblEmpDesig"
          runat="server"
          Text='<%# Eval("EmpDesig") %>'
        ></asp:Label>
      </ItemTemplate>
      <EditItemTemplate>
        <asp:TextBox
          ID="txtEmpDesig"
          runat="server"
          Text='<%# Eval("EmpDesig") %>'
          Width="140"
        ></asp:TextBox>
      </EditItemTemplate>
      <ItemStyle />
    </asp:TemplateField>
  </Columns>
</asp:GridView>

Код позади C #

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        this.BindGrid();
    }
}

private void BindGrid()
{
    try
    {
        objlog.Action = "FetchEmp_Details";
        objlog.StrName = "Stored_Proc_Emp";
        dt = IncometaxDetails_Datalayer.GetData(objlog);
        if (dt.Rows.Count > 0)
        {
            GridView1.DataSource = dt;
            GridView1.DataBind();
        }
    }
    catch (Exception ex)
    {

    }
}

1 Ответ

0 голосов
/ 09 февраля 2019

Вы можете использовать следующую функцию, чтобы преобразовать ваши данные по вертикали и связать их с GridView

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 = null;
        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, вы должны передать DataSet функции, которую выможет работать так:

DataSet ds = new DataSet();

if (dt.Rows.Count > 0)
{
    GridView1.DataSource = FlipDataSet(ds.Tables.Add(dt));
    GridView1.DataBind();
}

Для получения дополнительной информации вы можете проверить эту статью Отображение вертикальных строк в GridView

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...