Figured it out . I hadn't included
e.cancel=true;
at the end of ItemUpdating event handler. Now it works perfectly inside update panel. The modified function is:
protected void ModulesList_ItemUpdating(Object sender, ListViewUpdateEventArgs e)
{
ModulesList.EditIndex = -1;
ModulesList.DataBind();
e.cancel=true;
}