Member 12324523 Ответов: 1

Как привязать все таблицы в наборе данных к одному gridview с расширением и сворачиванием для всех шести таблиц в наборе данных


Я получаю 6 таблиц в своем наборе данных, причем каждая таблица имеет разные столбцы, что означает, что моя первая таблица в наборе данных имеет 4 столбца, вторая таблица в наборе данных имеет 6 столбцов, третья таблица имеет 10 столбцов, таким образом, все шесть таблиц в наборе данных имеют разные столбцы i необходимо связать все эти таблицы с одним представлением сетки в структуре древовидной структуры, которая является первой таблицей в наборе данных с помощью + и - для развертывания и свертывания, второй таблицы в наборе данных с помощью + и - для развертывания и свертывания, третьей таблицы в наборе данных с помощью + и - чтобы развернуть и свернуть, четвертая таблица в наборе данных с + и - развернуть и свернуть для всех шести таблиц, но я могу привязать только первую таблицу в наборе данных к gridview
private void BindGrid()
       {
            
           DataSet ds = new DataSet();
           DataTable dt = new DataTable();
           ds.ReadXml(Server.MapPath("~/Sample.xml"));
 
           GridView gvEmployee = new GridView();
           gvEmployee.AutoGenerateColumns = false;
 
           if (ds != null && ds.HasChanges())
           {
               dt = ds.Tables[0];
               for (int i = 0; i < dt.Columns.Count; i++)
               {
                   BoundField boundfield = new BoundField();
                   boundfield.DataField = dt.Columns[i].ColumnName.ToString();
                   boundfield.HeaderText = dt.Columns[i].ColumnName.ToString();
                   gvEmployee.Columns.Add(boundfield);
               }
 
               gvEmployee.DataSource = dt;
               gvEmployee.DataBind();
               gvEmployee.Width = 600;
               gvEmployee.HeaderStyle.CssClass = "header";
               gvEmployee.RowStyle.CssClass = "rowstyle";
 
               Panel1.Controls.Add(gvEmployee);
           }
       }


above is my code which creates 6 tables in dataset but only one table is getting binded to gridview at the end but i need to bind all those tables to a gridview with expand and collapse for each table in dataset


Что я уже пробовал:

i need to bind all the tables in dataset to a single gridview that means i have 6 tables in my dataset those 6 tables have different different columns all these tables should be binded to single gridview with expand and collapse for those six tables which we are getting in dataset

1 Ответов

Рейтинг:
0

Bhola Ram Sahu

Невозможно связать один и тот же gridview с несколькими таблицами.

Для этой цели лучше всего подходит DataRepeater.


<asp:Repeater ID="Repeater1" runat="server">
        <HeaderTemplate>
             Your Header
        </HeaderTemplate>
        <ItemTemplate>
        <asp:GridView runat="server" ID="grd" AutoGenerateColumns="false">
            <Columns>
                //Your GridView Attributes
            </Columns>
        </asp:GridView>
        </ItemTemplate>
</asp:Repeater>



Используйте Bootstrap Accodion для сворачивания и расширения в ItemTemplate и поместите сетку в аккордеон.

В связанном случае повторитель данных, найти элемент управления сетки с помощью метода FindControl и привязки данных к сетке.

GridView grid = e.Item.FindControl("grd") as GridView;
grid.DataSource = dataTable;
grid.DataBind();