I’m creating a custom widget.
I have a table ICP
with a reference column Industry
that points to another table Industry
. The Industry
column is configured to display the human-readable Industry_Name
instead of the raw rowID
. However, I need to access the raw rowID
of the related Industry
record in my custom widget.
Here’s the schema for reference:
@grist.UserTable
class ICP:
ICP_name = grist.Text()
Industry = grist.Reference('Industry') # Configured to show Industry_Name for readability
description = grist.Text()
@grist.UserTable
class Industry:
Industry_Name = grist.Text()
Industry_Description = grist.Text()
In my custom widget, I’m using grist.onRecord
to access the record data. However, the Industry
field in the record object returns the human-readable Industry_Name
instead of the raw rowID
. Here’s my code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>onRecord</title>
<script src="https://docs.getgrist.com/grist-plugin-api.js"></script>
</head>
<body>
<div id="readout">Waiting for data...</div>
<div>
<strong>Row ID:</strong>
<span id="rowID">Loading...</span>
</div>
<div>
<strong>ICP Name:</strong>
<span id="icpName">Loading...</span>
</div>
<div>
<strong>Industry:</strong>
<span id="industry">Loading...</span>
</div>
<div>
<strong>Industry Row ID:</strong>
<span id="industryRowID">Loading...</span>
</div>
<script>
grist.ready();
grist.onRecord(function(record) {
console.log("Record Data:", JSON.stringify(record, null, 2));
document.getElementById('readout').innerHTML = "Data loaded successfully!";
if (record) {
document.getElementById('rowID').innerText = record.id || 'N/A';
document.getElementById('icpName').innerText = record.ICP_name || 'N/A';
document.getElementById('industry').innerText = record.Industry || 'N/A';
document.getElementById('industryRowID').innerText = record.Industry || 'N/A';
}
});
</script>
</body>
</html>
Current Output:
Data loaded successfully!
Row ID: 1
ICP Name: Video Pro Vince
Industry: Media & Entertainment
Industry Row ID: Media & Entertainment
Expected Output:
Data loaded successfully!
Row ID: 1
ICP Name: Video Pro Vince
Industry: Media & Entertainment
Industry Row ID: 2 // Raw rowID of the related Industry record
How can I access the raw rowID
of the related Industry
record instead of the human-readable Industry_Name
? Any help would be greatly appreciated!