The sorting is enabled all the while, and the proper html/javascirpt required for the sorting is already inserted into the column header properly.
When I change the header using the method mentioned above, it overided the codes with just a plain text.
Hence there is no way for me to put it back.
One work arond is ..... Text.Replace("UserID, "User ID");
But this looks very ugly.
So, at the end I have to use LinqDataSource instead, and add all the columns manually. And then I am facing all sort of other issues which is very difficult to work around :(
http://social.msdn.microsoft.com/Forums/en-US/linqtosql/thread/671d64bf-2e8e-42ee-a2e3-12b8cdb5802bLinq in GridView is not as flexible as it claimed, and still full with un-wanted *features* (a.k.a BUGS)