There is a solution planned that’s similar to tabs on pages, but has been delayed: Expanding/collapsing widgets · Issue #34 · gristlabs/grist-core · GitHub.
Meanwhile, you may get some mileage out of constructing anchor links using formulas. An anchor link is a link to a particular cell. They are described here: Entering data - Grist Help Center.
An anchor link looks like this:
https://templates.getgrist.com/doc/lightweight-crm/p/1#a1.s4.r14.c5
If you can construct it using a formula, then you can create a link in some cells of your document, which open another page in the same document, with a suitable record already selected. You can do it with a formula like this:
SELF_HYPERLINK(page=1, label="link") + "#a1.s4.r{}.c5".format($id)
-
SELF_HYPERLINK()
is a built-in function that returns the URL of the current document. -
page=1
specifies the page to go to (e.g. inhttps://templates.getgrist.com/doc/lightweight-crm/p/1#a1.s4.r14.c5
, it’s the number after/p/
) -
label="link"
adds the label before the constructed URL, to make it look better if you use the Hyperlink formatting for this column (remember to change the type of this formula column to Text to have that option). - The anchor link portion is obtained by taking a manually copied link-to-cell, and replacing the rowId (after
r
) with{}
, which the.format()
function then replaces with a rowId of the current record ($id
). If the destination table is different from the current table, you can construct a rowId using a reference column, e.g. replace$id
with$Person.id
.
Here is an example Class Enrollment - Grist based on an existing template, but I added a “Link” column in the Enrollments widget, which opens the selected student in another page, following the instructions above. In the example, the formula is:
SELF_HYPERLINK(label="Link", page=7) + "#a1.s10.r{}.c25".format($Student.id)