Hello @He Caixia
I saw another post from you here and I think they all have the same purpose, so I would suggest you to close them both if my answer solves your problem.
The attached sample is blocking the even rows from being changed, and I think this can help you achieve your needs.
First of all, add a OnReady event to your page:

You will notice, that I added a custom JS block, passing the GridId as a parameter, as we can have multiple grids on the same page you need to inform which grid to handle.
Looking closer to the script:

You will see the highlighted parameter GridID on the Subscribe events, this will register your beginEdit as soon as the grid is Ready to work.
The dataItem property contains the binding for the current row, in other words, you can access the value of all cells from the current row.
If you wish to validate the column triggering the beginEdit, use the e.getColumn().binding for example. To block cells from being edit you just have to set e.cancel to true.
Hope I could solve your problem
Ricardo Valim