Not able get Group row data
Not able get Group row data
Abisha
Posts: 5Questions: 1Answers: 0
Using data table i group the row. I want to add new sub child table on next to the group row
table.row(this).data() returns empty array. Also table.row().data() does not contain any group rows
Answers
Its hard to say what the problem is without seeing what you are doing. Please post a link to your page or a test case replicating the issue so we can see your solution to help debug.
https://datatables.net/manual/tech-notes/10#How-to-provide-a-test-case
Kevin
This is my code, As I'm not able to add any child row into the group row. While clicking 'A' cell I want to add my child row
https://codepen.io/abisha__25/pen/vYvrbEq
Sounds like you are wanting to use this example, correct?
I don't have a codepen account so can't save anything. I copied your code into this example:
https://live.datatables.net/vifuguka/1/edit
Not sure why you have
style= "display:none"
on thetr
tag so I removed that. I added the code from the example. I modified the format function to access your array based data. I changed the order to"order": [[1, 'asc']]
so it sorts the table by the grouped rows.Is this what you are looking for?
Kevin
Maybe you are looking for something like this example from this thread. It uses the RowGroup Extension which replaces the code you are using from this example.
This uses the
rowGroup.startRender
option to hide or display the rows under a group. It uses the variablecollapsedGroups
to keep track of the collapsed state of the rows. It is not a built in option however you can find other variants of the solution on the forum by searching forcollapsedGroups
. I believe there are options for initially collapsing the rows and adding buttons.Kevin
I'm Using "display: none" to hide the repeated value. I grouped row and Sum the row values. I'm Not having any issues on collapsedGroups.
I don't understand the issue you are trying to solve. Please provide details of how to replicate the issue you are trying to solve in your test case.
Kevin
https://codepen.io/abisha__25/pen/vYvrbEq?editors=1010
Here is my updated code. + icon is added on the GroupRow While clicking + button, I want to add new table under it.
Inside the click function
table.row(this).data(); return empty array .
table.data() does not have GroupRow data
Your test case is missing the code to add the classname
dt-control
to the column so the event handler never executes, for example:** I'm guessing you don't want this to show in each row but I added it for tasting.
I added that and changed the selector from
td-control
todt-control
to match:Now clicking the plus results in this error:
This is due to having the event handler outside the scope of where the
var table
variable is defined, indocument.ready()
.The event handler has this code:
The first row in the table is the row group row. This is not a Datatables row so
var row = table.row(row);
won't work. You can click on the second row and see thattable.row(row)
works:With the row group row you will need to use standard jQuery or Javascript methods to get the data in the row. You have this:
This gets the data in the category column of the row group.
Also note the none of the Datatable's APIs will not work with the row group rows. Using
row.child(dtable).show();
to show the row won't work. These APIs will only work with the table rows. The row group rows are being inserted in the the page but Datatables doesn't know anything about them. Instead ofrow.child(dtable).show();
you will need to use jQuery or Javascript methods to append and remove the child table elements.Sorry I can't save my changes as I don't have a codepen login. If you use jsfiddle or live.datatables.net then I can save the changes so you can see them.
Kevin
Is there any possible way to add sub table under first row (Group Row ). My Actual need is that only
There is nothing built into Datatables to do this. As I said you will need to use jQuery or Javascript methods to insert and remove the child elements. I copied your code from the last test case into the live.datatables.net environment - which I requested you do so I can make changes and save them. I made this simple example, which works similarly to the child detail rows example.
https://live.datatables.net/rehowuji/1/edit
It uses the class
shown
to keep track of whether the child is shown or not. It inserts or removes based on the.shown
existence. You will need to test this solution to make sure it works for all conditions even paging.If you still have questions then please continue with this test case or move your work from codepen into a new live.datatables.net or jsfiddle environment so I can save changes.
Kevin