What kind of control is your Summary Data in? Maybe you could add an EventHandler to your Summary Data control that fires when you click on an item. You would write the handler for the event in your .aspx code-behind, and then link them up in your .aspx's Page_Load().
Here's a quick example:
Default.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="GridViewEventHandling._Default" %>
<%@ Register TagName="MyControl" TagPrefix="mc" Src="~/SampleData.ascx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="uxGridView" runat="server" AutoGenerateColumns="true">
</asp:GridView>
<mc:MyControl ID="myControl" runat="server" />
</div>
</form>
</body>
</html>
Default.aspx.cs:
using System;
using System.Collections.Generic;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace GridViewEventHandling
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
myControl.OnLinkClick += new EventHandler(myControl_OnLinkClick);
}
private void myControl_OnLinkClick(object sender, EventArgs e)
{
uxGridView.DataSource = GetDataSource();
uxGridView.DataBind();
}
private IDictionary<string, string> GetDataSource()
{
IDictionary<string, string> dict = new Dictionary<string, string>();
dict.Add("Product 1", "Description 1");
dict.Add("Product 2", "Description 2");
dict.Add("Product 3", "Description 3");
return dict;
}
}
}
SampleData.ascx:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SampleData.ascx.cs" Inherits="GridViewEventHandling.SampleData" %>
<asp:LinkButton ID="item1" OnClick="HandleClick" CommandName="BindGrid" CommandArgument="1" Text="Item 1" runat="server" /><br />
<asp:LinkButton ID="item2" OnClick="HandleClick" CommandName="BindGrid" CommandArgument="2" Text="Item 2" runat="server" /><br />
<asp:LinkButton ID="item3" OnClick="HandleClick" CommandName="BindGrid" CommandArgument="3" Text="Item 3" runat="server" /><br />
SampleData.ascx.cs:
using System;
namespace GridViewEventHandling
{
public partial class SampleData : System.Web.UI.UserControl
{
public event EventHandler OnLinkClick;
protected void HandleClick(object sender, EventArgs args)
{
if (OnLinkClick != null)
OnLinkClick(sender, args);
}
}
}