2012-09-18 1 views
1

J'ai un lien hypertexte à l'intérieur d'un contrôle de répéteur pour la liste de pdf. Je veux définir un compteur de téléchargement à chaque clic sur chaque hyperlien. Le nom de fichier doit être un paramètre. Mon code est essentiellement comme ci-dessous. Il y a aussi du code qui appelle la procédure stockée et la lie au répéteur sur page_load.Comment définir un compteur de téléchargement sur le contrôle de lien hypertexte dans le répéteur? asp.net

<asp:Repeater ID="rptPDF" runat="server"> 
<ItemTemplate> 
<div class="repeaterResources"> 
<b><%# Eval("Name") %></b><br /> 
    <b>Description</b> <%# Eval("Description") %><br /> 
    <asp:HyperLink ID="HyperLink2" runat="server" class="downloadLink" NavigateUrl='<%# "~/PDF/" & Eval("Filename") %>' Target="_blank">Download</asp:HyperLink><br /><br />     
</div> 
</ItemTemplate> 
</asp:Repeater> 

Le bit mystère est comment obtenir un événement de clic de bouton d'ici. Merci.

Répondre

0

Vous pouvez utiliser l'événement OnCommand et définissez l'attribut CommandArgument avec une valeur à l'aide

<%# Eval('myvalue') %>.

MSDN a un exemple moins le répéteur: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.oncommand.aspx

Exemple:

<asp:Repeater ID="repeater" runat="server"> 
<ItemTemplate> 
<asp:LinkButton runat="server" ID="button1" OnCommand="button1_command" CommandArgument='<%# Eval("myvalue") %>' /> 
</ItemTemplate> 
</asp:Repeater> 
+0

Il est également intéressant de mentionner que sur votre code-behind, CommandArgument est un objet, je donne la parole habituellement .ToString() sur juste pour m'assurer que je travaille avec une chaîne et asp. net n'a rien fait de fou avec les types. –

+0

Merci Steve, mais cela n'ouvrira pas un nouvel onglet rite? – lawphotog

+0

A droite, le gestionnaire d'événement OnCommand est géré pendant la publication, donc pas de nouveaux onglets. Si vous voulez ouvrir un nouvel onglet avec un lien, utilisez 'target =" _ blank "' sur votre lien hypertexte (mais pas votre postback parce que vous ne pouvez pas poster dans un nouvel onglet!) –

Questions connexes