Quel est le type de contrôle dans vos données récapitulatives? Peut-être pourriez-vous ajouter un EventHandler à votre contrôle Summary Data qui se déclenche lorsque vous cliquez sur un élément. Vous devez écrire le gestionnaire de l'événement dans votre code .aspx, puis les lier dans le fichier Page_Load de votre .aspx.
Voici un exemple rapide:
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);
}
}
}
Pouvez-vous donner un exemple? – Xaisoft
Je l'ai mis dans la page aspx en tant que GridView et je suppose que j'ai besoin de mettre une propriété dans le contrôle pour récupérer le GridView. – Xaisoft
Je n'arrive pas à comprendre comment utiliser FindControl pour obtenir GridView. – Xaisoft