Have you tried a script to delete the portal row.
Delete Portal Row 
Yes, the sum calculation will be correct once it is commit. But, on our system, commit will not be executed before user click save. That's my problem. Before user click save, the sum is incorrect when portal row is deleted.
Then we must ask the obvious question: Why is it imperative that the record not be committed until they click save?
Any scripted work arounds just to get a portal total and leave the records uncommitted will be cumbersome.
Your delete button in your portal row should have the above script and then the record will be commited when you delete the record.
If you do not want to commit your record until save is clicked there is another work around but there can be draw backs to this method also.
You can have the total in a unstored calculation field. The total will not be store but recalculated each time it's needed. On your calculation filed click storage options then under Indexing click do not store recalculate as need.
It is because our system has revert feature which is important for data entry. I use your suggestion to place Web Viewer on the background to prevent commit automatically. Commit will be done when user decide to save his data entry info.
It is painful to me to have the revert capability which is a must feature for data entry and I need a lot of works/scripts to implement it. Any suggestion?
I suggest working to script your own save and revert instead of what is built in.
One method is to set up a layout with global fields. If you are to edit an existing record, a script copies data from the specified record into global fields. And your portal can be to a set of records in the same table or they can also be copied to a related table of records linked via a value in one of the global fields.
Then "saving" your data means to copy the data to either a new record or back to the original record from which it is copied.
To "revert" you simply reload the global fields from the original record.