Hi Pattabhi, I can think in two options:
A. At client Hide/Show some columns based on the user request. Then you can store at session an array of column names selected.
B. Use DynamicList to specify the fields the user are looking for.
Did you consider those before?