Frage

Jede Probe ich, dies zu tun gefunden habe, besteht meine Seite eine Funktion außerhalb der OnLoad des Schreibens, um dies zu tun, aber ich bin neugierig, ob es eine prägnante Art und Weise ist, darüber zu gehen. Ich habe ein Label innerhalb eines Header, und ich möchte nur auf eine Zeichenfolge, die den Text des Etiketts einzustellen. Ich kann folgendes tun, wenn das Etikett außerhalb des Repeaters ist:

Month.Text = Enum.GetName(typeof(Month), Convert.ToInt16(MonthList.SelectedValue));

Gibt es eine prägnante Art und Weise, dies zu tun?

War es hilfreich?

Lösung

Versuchen Sie Folgendes innen Ihre Header-Template:

<asp:Label ID="Month" runat="server" Text='<%# (Month)Convert.ToInt16(MonthList.SelectedValue) %>' />

Andere Tipps

Es wäre besser, wenn Sie das Databinding-Ereignis verwendet haben.

ASPX-Markup:

<asp:Repeater ID="repTest" runat="server">
    <HeaderTemplate>
        <asp:Label ID="lblHeader" runat="server" />
    </HeaderTemplate>
</asp:Repeater>

-Code hinter:

protected void Page_Load(object sender, EventArgs e)
{
    repTest.ItemDataBound += new RepeaterItemEventHandler(repTest_ItemDataBound);

    int[] testData = { 1, 2, 3, 4, 5, 6, 7, 8 };
    repTest.DataSource = testData;
    repTest.DataBind();
}

void repTest_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Header)
    {
        Label lblHeader = e.Item.FindControl("lblHeader") as Label;
        if (lblHeader != null)
        {
            lblHeader.Text = "Something";
        }
    }
}

Sie gehen:)

Ich bin nicht 100% sicher, ob Sie warten müssen, für die Repeater-Daten an ihn gebunden haben oder nicht, aber das ist, wie Sie ein Steuerelement zugreifen würden in er Header sind:

var myLabel = MyRepeater.Controls[0].Controls[0].FindControl("MyLabel") as Label;
myLabel.Text = "Hello World";

Sie sollten wahrscheinlich, dass in mehrere Zeilen brechen und vergewissern Sie sich, dass es ein Objekt bei Kontrollen [0].

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top