Domanda

ASPX: codice

  

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

     

<headerTemplate></headerTemplate>

     

<itemtemplate></itemtemplate>

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

  

</asp:repeater>

Quello che sto cercando è il codice sorgente per poter trovare il controllo all'interno del piè di pagina di un ripetitore di dati. Ho familiarità con il & Quot di base; FindControl & Quot; quando eseguo un database o cerco il controllo all'interno della pagina stessa, ma come posso trovare il controllo all'interno di un modello piè di pagina di un ripetitore di dati?

È anche possibile? e in tal caso, come posso ottenere assistenza,

grazie ancora a tutti !!!

[update]

Devo essere in grado di farlo dopo la banca dati

È stato utile?

Soluzione

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

Altri suggerimenti

Esistono diversi modi per farlo, il modo esatto dipende da quando si desidera ottenere l'accesso al controllo.

Se lo desideri durante DataBind, esegui semplicemente le seguenti operazioni all'interno della voce Databound.

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

Se vuoi trovarlo in un altro momento, accedi alla collezione di oggetti del ripetitore, quindi trova " Footer " e da quell'elemento puoi trovare il controllo.

Aggiorna

In base alla nota aggiunta, puoi farlo enumerando la raccolta di elementi, di seguito è riportato un esempio con un ripetitore che ha un ID di myRepeater.

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

Penso che devi controllare ListItemType in un gestore eventi ItemDataBound. È possibile verificare l'intestazione o il piè di pagina e quindi utilizzare il metodo FindControl per accedere al controllo.

Foreach (RepeaterItem item in myRepeater.Controls)

Funzionerà meglio poiché la raccolta di articoli non contiene intestazione e piè di pagina

Se è necessario ottenere il piè di pagina dopo DataBind (che è ciò che l'OP sembra desiderare), è possibile utilizzare quanto segue:

RepeaterItem item= (RepeaterItem)myRepeater.Controls[myRepeater.Controls.Count - 1];
if (item.ItemType == ListItemType.Footer) {
    Literal findMe = (Literal)item.FindControl("findMe");
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top