in

dotNet Umbria [DNU]

Il primo User Group in Umbria sul mondo .Net
Latest post 01-29-2008 1:16 PM by Pizzoni Alessio. 4 replies.
Page 1 of 1 (5 items)
Sort Posts: Previous Next
  • 01-29-2008 11:23 AM

    Problemi con UpdatePanel

    Ciao a tutti è il mio primo post,

    volevo sapere se avevate consigli sul comportamento anomalo del componente UpdatePanel. per capire meglio vi scrivo alcune righe di codice , sono meglio di tante parole :)

     

    <asp:UpdatePanel ID="UpdatePanel1" runat="server">

    <ContentTemplate>

    <asp:GridView ID="grdClienti" runat="server" AutoGenerateColumns="False"

    onrowcommand="grdClienti_RowCommand" Width="98%">

    <Columns>

    <asp:TemplateField>

    <ItemTemplate>

    <asp:ImageButton ID="btnSelezionaCliente" runat="server"

    ImageUrl="~/BackOffice/images/icon_pencil.gif"

    CommandName="selezionaCliente" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "idCliente") %>' />

    </ItemTemplate>

    </asp:TemplateField>

    <asp:BoundField DataField="nome" HeaderText="Nome" >

    <ControlStyle Width="100%" />

    <ItemStyle Width="20px" />

    </asp:BoundField>

    <asp:BoundField DataField="cognome" HeaderText="Cognome" />

    <asp:BoundField DataField="ragionesociale" HeaderText="Ragione sociale" />

    </Columns>

    <AlternatingRowStyle BackColor="Red" BorderColor="#FFC080" BorderStyle="Double" />

    </asp:GridView>

     

    // inserisco la form che mi restituisce la lista dei clienti

    <div id="editCliente" class="form">

     

    <label for="txtNome">Nome</label>

    <asp:TextBox ID="txtNome" runat="server"></asp:TextBox><br />

    <label for="txtCognome">Cognome</label>

    <asp:TextBox ID="txtCognome" runat="server"></asp:TextBox><br />

    <label for="cboComune">Comune</label><br />

    <asp:DropDownList ID="cboComune" runat="server"></asp:DropDownList><br />

    <label for="btnConferma"></label>

    <asp:Button ID="btnConferma" runat="server" Text="Conferma" OnClick="btnConferma_Click"/><br />

    </div>

     </ContentTemplate>

    </asp:UpdatePanel>

     

    il problema è il seguente , viene tirata su la tabella dei clienti qui niente problema, cliccando sull'icona nella grglia viene scatenato l'evento e viene caricato il cliente nelle form sotto, qui è presente una DropDownList dei comuni , quando valorizzo appunto il cliente con ie7/ie6 il tempo di rendering della pagina supera i 5 minuti , con firefox è decisamente meglio ma cmq la follia in tempi di prestazioni. La tabella dei comuni viene caricata nella load della pagina in questo semplice modo :

    List<Comune> listaComuni = (new CommonDAO()).GetListaComuni();

    cboComune.DataSource = listaComuni;

    cboComune.DataTextField =
    "Descrizione";
    cboComune.DataValueField = "IdComune";

    cboComune.DataBind();

     

    COSA SUCCEDE ? dove sbaglio??? mi affido a voi, grazie anticipatamente dell'aiuto

     

     

     

  • 01-29-2008 12:08 PM In reply to

    Re: Problemi con UpdatePanel

    Ciao Alessio,

    tipicamente una tabella comuni ha un certo peso perchè sono più di 8000. A parte alcune ottimizzazioni che potresti fare lato server (ad esempio tenerti la tabella nella cache di asp.net in quanto tabella praticamente statica) per abbattere i tempi di accesso al database io ti suggerisco di lavorare in modo diverso. Un modo potrebbe essere quello di effettuare una query stile "google suggest" con il controllo AutoCompete dell' ASP.NET AJAX Control Toolkit in modo da fare una ricerca mirata dei comuni. E' anche molto più pratico della combo e ti permette, visto che il metodo di search lo definisci te, di fare ad esempio delle ricerche instring ltre che "starts with".

    Spero possa essere utile.

    Andrea Cruciani

  • 01-29-2008 12:35 PM In reply to

    Re: Problemi con UpdatePanel

    Ciao Andrea,

    grazie per la risposta tempestiva, hai ragione sul fatto che la tabella dei comuni è molto lunga, solo che quello che non capisco è se tolgo i controlli relativi all'UpdatePanel, è vero che si vede lo sgradevole effetto di PostBack, ma è una scheggia, a mio avviso è qualcosa relativo al controllo che lo rende lento nel rendering, poi la lista dei comuni è stata caricata , quando clicco il cliente mi deve solo spostare sul comune giusto. cosa ne pensate?

  • 01-29-2008 12:55 PM In reply to

    Re: Problemi con UpdatePanel

    Ho riletto il codice da te mandato e ho visto che è tutto un update panel, e non capisco che trigger hai messo, ho il dubbio che sia configurato in modo che reagisca a qualsiasi evento. Per fare questo devi ricordarti di mettere UpdateMode = Conditional sull'update panel ed agganciare un trigger all'evento del pulsante (da proprietà triggers) 

    Potresti alternativamente provare a mettere un secondo update panel solo per il form del cliente ed agganciare il trigger di refresh con il pulsante nell'altro panel per far refreshare effettivamente solo la porzione selezionata. Questo dovrebbe migliorare ulteriormente.

    Resto cmq un fan dell'autocomplete (valutando bene gli stress di calcolo in caso di molti utenti) :-)

    Andrea Cruciani

  • 01-29-2008 1:16 PM In reply to

    Re: Problemi con UpdatePanel

    Grazie Andrea ora faccio dei test con l'autocomplete

Page 1 of 1 (5 items)
dotNet Umbria 2007-2008
Powered by Community Server (Commercial Edition), by Telligent Systems