Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [c# 2.0 Repeater] Override OnItemCreated

    ciao a tutti, ho un problema nel rendering di un repeater del quale ho fatto l'override del metodo OnItemCreated.
    In pratica voglio aggiungere al footertemplate, una serie di collegamenti che mi permettono d inavigare le pagine del mio datasource.
    In esecuzione non ho problemi, mentre in design view mi viene dato un errore che non so come risolvere.
    codice:
    protected override void OnItemCreated(RepeaterItemEventArgs e)
            {
                if (e.Item.ItemType == ListItemType.Footer)
                {
    
                    HtmlGenericControl ulHTML = new HtmlGenericControl("ul");
                    if (_ClassePaginazione != string.Empty)
                    {
                        ulHTML.Attributes.Add("class", _ClassePaginazione);
                    }
                    HtmlGenericControl liHTML = new HtmlGenericControl("li");
    
                    //string sQueryString = HttpContext.Current.Request.QueryString.ToString();
                    //string sPagina = HttpContext.Current.Request.ServerVariables["SCRIPT_NAME"].ToString();
    
                    for (int i = 1; i < Paginazione.PageCount + 1; i++)
                    {
                        HtmlAnchor aHTML = new HtmlAnchor();
    
                        //aHTML.HRef = "?" + sQueryString + "&" + this._NomeParametroCurrentPage + "=" + i.ToString();
                        aHTML.InnerText = i.ToString();
    
                        liHTML.Controls.Add(aHTML);
                    }
    
    
                    ulHTML.Controls.Add(liHTML);
    
                    e.Item.Controls.Add(ulHTML);
                }
    
                base.OnItemCreated(e);
            }
    queste due righe che ho commentato sono quelle che mandano in errore visual studio e nn mi permettono di visualizzare correttamente il controllo nel design della pagina.
    //string sQueryString = HttpContext.Current.Request.QueryString.ToString() ;
    //string sPagina = HttpContext.Current.Request.ServerVariables["SCRIPT_NAME"].ToString();

    forse il nome della pagina potrei ometterlo, ma dei parametri che sono presenti oltre al numero della pagina corrente non posso proprio farne a meno, qualcuno mi sa suggerire come risolvere?
    ...NO ONE IS INNOCENT ANYMORE...

  2. #2

    Re: [c# 2.0 Repeater] Override OnItemCreated

    //string sQueryString = HttpContext.Current.Request.QueryString.ToString() ;
    //string sPagina = HttpContext.Current.Request.ServerVariables["SCRIPT_NAME"].ToString();
    Io proverei a valorizzare queste due variabili in un altro punto della pagina. Per esempio nel Page_Load, ma non in OnItemCreated.
    Saluti. Cristiano
    ----------------
    http://www.gimmicks.it

  3. #3
    No, ce l'ho fatta a risolvere.
    Ho creato una proprietà della classe che nella get effettua il controllo :
    codice:
    public string QueryString 
            {
                get 
                {
                    if (HttpContext.Current.Request.QueryString != null)
                    {
                        return HttpContext.Current.Request.QueryString.ToString();
                    }
                    else 
                    {
                        return string.Empty;
                    }
                }
            }
    In questo modo il designer non da problemi.
    ciao
    ...NO ONE IS INNOCENT ANYMORE...

  4. #4
    Praticamente il problema è che in design mode la querystring non esiste.

    Forse puoi risolvere in modo più elegante utilizzando la funzione IsDesignMode

    Ciao
    Saluti. Cristiano
    ----------------
    http://www.gimmicks.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.