Domanda

Ogni campione che ho trovato di fare questo prevede la scrittura di una funzione al di fuori di OnLoad della mia pagina, al fine di fare questo, ma io sono curioso di sapere se c'è un modo più conciso per andare su di esso. Ho un Etichetta all'interno di un HeaderTemplate, e voglio solo per impostare il testo dell'etichetta in una stringa. Posso fare quanto segue se l'etichetta è al di fuori del ripetitore:

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

C'è un modo succinto per fare questo?

È stato utile?

Soluzione

Prova il seguente all'interno il tuo modello di intestazione:

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

Altri suggerimenti

Sarebbe meglio se è stata utilizzata l'evento DataBinding.

ASPX markup:

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

Codice dietro:

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";
        }
    }
}

Ci si va:)

Io non sono sicuro al 100% anche se non è necessario attendere che il ripetitore di avere dati associati ad esso o no, ma questo è come si dovrebbe accedere a un controllo all'interno del suo intestazione:

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

Probabilmente si dovrebbe rompere questo in più righe e controllare per assicurarsi che ci sia un oggetto a controlli [0].

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top