For disabling RadGrid completely at the client side, you need to disable the active
links/images/inputs/spans/etc which is inside the grid manually. So you have to add codes additional to "gridCtrl.get_element().disabled = "disabled" in order to achieve that. Please check the below link for more information, which will help you to disable RadGrid from Client side.
Yeah, I went down that path of letting the server side disable/enable the grid using an Ajax request, but it doesn't work. The grid is not refreshed on the client after the call (it will appear disabled however if you do something like add a new record when the server thinks it's disabled). The code in the link you forwarded has the same problem -- calling Rebind() after disabling/enable controls doesn't do anything.
The client side-only code has the same problem -- it still executes an Ajax request in the Enable() method and the grid is still not refreshed.