I not sure is it really what you want, but I propose you the following solution (this is part of my working project).
1. In grid declaration:
<Columns>
<px:PXGridColumn DataField="IsNotCalculated" Width="1px" RenderEditorText="True" >
</px:PXGridColumn>
<px:PXGridColumn DataField="PRPayrollDetailID" Width="90px" LinkCommand="GotoPayslip">
<ValueItems MultiSelect="False">
</ValueItems>
</px:PXGridColumn>
In graph I described the following:
public PXAction GotoPayslip;
[PXButton]
[PXUIField(DisplayName = "Go to Payslip")]
public virtual IEnumerable gotoPayslip(PXAdapter adapter)
{
if (PayRollsDetails.Current != null)
{
var graph = CreateInstance();
graph.PaySlip.Current =
graph.PaySlip.SearchPRPayrollDetails.payrollRefNbr>(
PayRollsDetails.Current.PRPayrollDetailID,
PayRollsDetails.Current.PayrollRefNbr);
throw new PXRedirectRequiredException(graph, true, "");
}
return adapter.Get();
}
If to summarize in simple words:
1. At grid syncposition = true.
2. At column set DataField and LincCommand.
3. At graph you'll need PXAction declaration and implementation, which will differ from each other by case.
4. You can read and use paramethers at graph.