Session["dt"] = DataTable; //after you get table from procedure, assign it to session
Затем, при загрузке страницы, каждый раз, когда привязываете вид сетки к данным, сохраненным в сеансе, вы вызываете его из БД только в первый раз
protected void Page_Load(object sender, EventArgs e)
{
GridView.DataSource = Session["dt"];
GridView.DataBind();
}