Frage

ASPX: Code

  

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

     

<headerTemplate></headerTemplate>

     

<itemtemplate></itemtemplate>

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

  

</asp:repeater>

Was ich suche ist Quellcode der Lage sein, die Kontrolle innerhalb der Fußzeile eines Datenrepeater zu finden. Im vertraut mit dem grundlegenden „Findcontrol“ Wenn ich ein databind oder suche Kontrolle innerhalb der Seite selbst, aber wie finde ich die Kontrolle innerhalb einer Fußzeile Vorlage eines Datenwiederholregister?

Ist das überhaupt möglich? und wenn ja, wie kann ich bitte etwas Hilfe bekommen,

Dank nochmals an alle !!!

[update]

Ich muss in der Lage, dies nach dem databind zu tun

War es hilfreich?

Lösung

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

Andere Tipps

Es gibt eine Reihe von Möglichkeiten, wie Sie es tun können, die genaue Art und Weise hängt davon ab, wenn Sie Zugriff auf die Kontrolle bekommen möchten.

Wenn Sie es während DataBind, füllen Sie einfach die folgenden Schritte aus innerhalb der Artikel Databound.

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

Wenn Sie es an einem anderen Zeitpunkt finden mögen, greifen Sie auf den Artikel-Sammlung des Repeaters, dann finden Sie das „Footer“ item, und von diesem Punkt können Sie die Kontrolle finden.

Aktualisieren

Basierend auf Ihrer zusätzliche Anmerkung, Sie können dies tun, indem Sie das Element Sammlung aufzählt, unten ist ein Beispiel mit einem Repeater, der eine ID von myRepeater hat.

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

Ich glaube, Sie haben die ListItemType in einem ItemDataBound Ereignishandler zu überprüfen. Sie können für Kopf- oder Fußzeile überprüfen und dann die Findcontrol-Methode verwenden, um die Steuerung zuzugreifen.

Foreach (RepeaterItem item in myRepeater.Controls)

Das funktioniert besser als Items-Auflistung enthält keine Kopf- und Fußzeilen

Wenn Sie die Fußzeile bekommen nach DataBind (das ist, was die OP zu wollen, erscheint), dann können Sie mit dem folgenden:

RepeaterItem item= (RepeaterItem)myRepeater.Controls[myRepeater.Controls.Count - 1];
if (item.ItemType == ListItemType.Footer) {
    Literal findMe = (Literal)item.FindControl("findMe");
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top