lunedì 12 dicembre 2011

asp net trovare controlli all'interno di DataList

Spesso e volentieri non possiamo fare riferimento a controlli dentro DataList, ovvero non possiamo utilizzarli in modo diretto.

Possiamo però usare escamotage per referenziare tali controlli.

Immaginiamo l'esigenza di dover usare una label nel footer di un DataList che si chiama PagerLocation.

Essendo all'interno del Footer, non possiamo usare il semplice PagerLocation per utilizzare proprietà e metodi.

Possiamo però creare un evento nel codice behind:


<FooterStyle Font-Italic="True" Font-Size="9pt"></FooterStyle>
     

        <FooterTemplate>
    <div id="Navigation" class="navigation" runat="server">

        <div id="leftnav">
            &nbsp;
            <a id="PreviousPageNav" runat="server"> &lt;&lt; Previous Products</a>
        </div>
     
        <div id="rightnav">
            &nbsp;
            <a id="NextPageNav" runat="server">More Products &gt;&gt;</a>
        </div>
 
        <div id="numnav">
            <asp:Label ID="PagerLocation" OnLoad="PagerLocation_OnLoad" runat="server" />
        </div>
 
    </div>
</FooterTemplate>

Si vede chiaramente che viene creato un evento OnLoad su caricamento del controllo.

Ora per utilizzare il controllo semplicemente :


public Label PagerLocation;
protected void PagerLocation_OnLoad(object sender, EventArgs e)
{
    PagerLocation = (Label)sender;
    //add code here to do what you wish with the button
}

In questo modo possiamo utilizzare la nostra Label in tutta la pagine laddove ci occorre.

Possiamo utilizzare questo metodo anche per altri controlli.


Nessun commento: