Question

ASPX: code

  

<asp:repeater id="repeater" runat="server">

     

<headerTemplate></headerTemplate>

     

<itemtemplate></itemtemplate>

<footerTemplate> <asp:literal id=findme runate=server> </footerTeplate>

  

</asp:repeater>

Ce que je recherche, c’est le code source pour pouvoir trouver le contrôle dans le pied de page d’un répéteur de données. Je connais bien les bases & Quot; FindControl & Quot; quand je fais un index de données ou que je cherche un contrôle dans la page elle-même, mais comment puis-je trouver le contrôle dans un modèle de pied de page d'un répéteur de données?

Est-ce même possible? et si oui, comment puis-je obtenir de l'aide,

merci encore à tous !!!

[mise à jour]

je dois être capable de faire cela après le databind

Était-ce utile?

La solution

Protected Sub Repeater1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles Repeater1.ItemDataBound
    If e.Item.ItemType = ListItemType.Footer Then
        Dim Lit As Literal = CType(e.Item.FindControl("findme"), Literal)
    End If
End Sub

Autres conseils

Vous pouvez le faire de différentes manières, la méthode exacte dépend du moment où vous souhaitez accéder au contrôle.

Si vous le souhaitez pendant DataBind, procédez comme suit dans l'élément Databound.

if(e.Item.ItemType == ItemType.Footer)
{
    Literal findMe = (Literal)e.Item.FindControl("findMe");
    //Your code here
}

Si vous souhaitez le trouver à un autre moment, accédez à la collection d'éléments du répéteur, puis recherchez le & "Footer &"; élément, et à partir de cet élément, vous pouvez trouver le contrôle.

Mettre à jour

En fonction de votre note ajoutée, vous pouvez le faire en énumérant la collection d'éléments. Vous trouverez ci-dessous un exemple avec un répéteur dont l'identifiant est myRepeater.

foreach (RepeaterItem item in myRepeater.Items)
{
    if (item.ItemType == ListItemType.Footer)
    {
        Literal findMe = (Literal)item.FindControl("findMe");
        //Do your stuff
    }
}

Je pense que vous devez vérifier le ListItemType dans un gestionnaire d'événements ItemDataBound. Vous pouvez vérifier l'en-tête ou le pied de page, puis utiliser la méthode FindControl pour accéder au contrôle.

Foreach (RepeaterItem item in myRepeater.Controls)

Cela fonctionnera mieux car la collection Items ne contient pas d'en-tête et de pied de page

Si vous devez obtenir le pied de page après DataBind (ce que l’opérateur semble vouloir), vous pouvez utiliser les éléments suivants:

RepeaterItem item= (RepeaterItem)myRepeater.Controls[myRepeater.Controls.Count - 1];
if (item.ItemType == ListItemType.Footer) {
    Literal findMe = (Literal)item.FindControl("findMe");
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top