I have a custom task which contains two steps, creating a dataset and using the dataset. When the dataset is generated, it shows "readonly". I can change it by deselecting the "readonly" in the Data menu. However when I save the project and open it again, the dataset inside goes back to "readonly" again. Is there a way like changing the default setting that I don't need to deselect the "readonly" every time? Thanks!
Yes, you can set the option in Tools->Options->Data: General. It's "Use data tables in unprotected (read/write) mode". If you check the option, EG will automatically attempt to open tables in "update" mode when you add/open them in your project.
The treatment applies to all tables, not just those generated by your task. I suspect you might find this isn't the behavior you want in general, but you can try it for yourself.