I can't find a solution to hierarchical grid, could some please post sample code on how I can make it work.
I have 2 bands in the aspx page, with my colums in the first band. I am binding the grid to a datatable, this works I see the data. But I dont see or know how to show the plus or expand column, which when expanded will show or expand an area where I want to display a FormView.
Thanks
I don't think you can do what you want to do. If I understand you, each record in band 0 has a different table from which it needs to draw records for a sub-band. This is pretty straight-forward in a GridView, because each parent record can have an independent sub-GridView that is only related to that particular parent. In an WebGrid, bands are related globally. So if you can't put all your data into a parent-child dataset, I don't think you're going to pull it off in a WebGrid.
Then again, perhaps someone cleverer than I can suggest...
Darrell,
Thanks for clarifying the bands issue, I still havent grasped the bands properly.
I have been working with the example you provided, thanks. But, my problem is that two of the fields in the Parent Grid are needed for the child. So, the DataSet binding as in the example will not work. One of the fields in the parent is a table name for join in the stored procedure. I will probably need to bind the child grid on the databing on the row of the parent. How can this be done with UltraWebGrid? I have it running with a regular GridView right now.
<igtbl:UltraWebGrid ID="UltraWebGrid1" runat="server" Browser="Xml" DataKeyField="Request_Id, Request_Type" OnExpandRow="UltraWebGrid1_RowExpand" OnInitializeRow="UltraWebGrid1_InitializeRow" OnItemCommand="UltraWebGrid1_ItemCommand"><DisplayLayout AutoGenerateColumns="false" StationaryMargins="Header" ColWidthDefault="100px"SelectTypeRowDefault="Extended" RowHeightDefault="23px" AllowSortingDefault="Yes"HeaderClickActionDefault="SortSingle" AllowColSizingDefault="Free" RowSelectorsDefault="No"CellClickActionDefault="RowSelect" SelectTypeColDefault="Single" AllowUpdateDefault="Yes"GridLinesDefault="Horizontal" ViewType="Hierarchical">
There seems to be a misunderstanding on the Band concept.
A band would denote level of data, so Band 0 would be "Owners" data, Band 1 would be "Owned Things" data. You wouldn't make a new band for each row being created in the child level.
If you are going to bind to Hierarchial Data, the ViewType of the WebGrid needs to be set to a setting that will allow for hierarchial data. Then, since you are using a DataTable (and I assume that the Parent table is also a DataTable), create a DataSet object and set the Relation in there to align the Parent and Child data
Hierarchial Data Sample Click on the C# code tab and you can naviagate to see the code behind.
The child bands are not templatable to show other controls, so you will have the WebGrid's rendering for child rows.
I spent all day on this problem and still no luck..
In looking deeper, this example will not work for my. The data in my child table requires 2 parameters that come from the parent row.
I tried all sorts of trick, but no luck.
I tried binding the child row like so:protected void UltraWebGrid1_InitializeRow(object sender, EventArgs e) { UltraGridBand ugb = new UltraGridBand(); UltraGridColumn ugc = new UltraGridColumn("Child_Id", "", ColumnType.Custom, null); ugc.Width = new Unit("400 px"); ugb.Columns.Add(ugc); UltraWebGrid1.Bands.Add(ugb);
This made it possible for the Expand plus sign to show but the child row disappears after 2 seconds.
I deally I would like to display data in a FormView in the child row rather than in grid format.
Any help will be appreciated.