Question: I have my own customized freemarker template storage configured over freemarker, it is working fine.

Recently I want to make some changes on the cache management, I need to read the properties from the cache key which is typeof "TemplateKey". Unfortunately the "TemplateKey" is "private final static class". I have no access to this class and I cannot cast the Key object back into TemplateKey object.

I see the simplest way is to make source code change in TemplateCache.java to update the TemplateKey to be expose as public class.

Question to Freemarker designer: Is it any special reason to make this TemplateKey not be exposed? Is it possible to expose it in next build? 

Thanks.

Rocky

Answer: 
You can try the foreach loop to accomplish your requirement which binds the GridViewRow class to your GridView Source.

```
foreach (GridViewRow gr in GridView1.Rows)
{         
    string cell_1_Value = gr.Cells[0].Text; 
    string cell_2_Value = gr.Cells[1].Text; 
}

```
```
foreach (GridViewRow gr in userGrid.Rows)
{
    CheckBox check = (CheckBox)gr.FindControl("chkSelect");
    if (check.Checked == true)
    {
        string order = userGrid.Rows[gr.RowIndex].Cells[3].Text;
        gl.updatetracking (order);
    }
}

```