Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,857

    apertura ModalPopup da UC + passaggio parametri

    Ho una pagina piuttosto "articolata" (strano non ne faccio mai).
    In questa pagina ho un repeater che nell'itemtemplate mostra uno usercontrol "UCrep".

    Dovrei aprire un modalpopup extender cliccando su un bottone in UCrep.

    La cosa più semplice sarebbe mettere il modalpopup al'interno di UCrep ma se faccio così praticamente crea un modalpopup con relativi annessi e connessi per ogni riga del repeater, volevo pertanto mettere un unico modalpopup nella pagina parent e cercare di aprirlo passandogli dei dati da UCrep...

    Il modalpopup infatti mostrerà al suo interno un ulteriore UserControl perciò, da UCrep, oltre ad aprire il modalpopup devo passare dei parametri da settare come proprietà per lo UserControl che verrà ivi mostrato... ma una cosa alla volta.

    Al momento sono già in difficoltà con l'apertura del modalpopup che, sul click di un bottone in UCrep tento di fare così:
    codice:
    Protected Sub lb_aprimodale_Click1(sender As Object, e As EventArgs)
        Dim pg As Page = Me.Page
        Dim uc As AjaxControlToolkit.ModalPopupExtender = Me.FindControl("mioMP")
        uc.Show()
      End Sub
    e lui poco carinamente mi dice che uc=nothing... pg però è valorizzato e in debug mi mostra anche che contiene il modalpopup ...ma non è accessibile... warum?
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  2. #2
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,857
    lol, sono riuscito ad arrivare al modalpopup risalendo la catena dei parent fino al controllo che contiene il modalpopup... praticamente così:

    codice:
    Dim uc As AjaxControlToolkit.ModalPopupExtender = me.parent.parent.parent.findcontrol("mioMP")

    Ok popupmodale aperto... ora vedo di passare i parametri allo UC che contiene
    Ultima modifica di djciko; 12-12-2018 a 18:23
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  3. #3
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,886
    Nella pagina della griglia con gli UC dentro gli ItemTemplate deve esserci una sola modale, secondo me...altrimenti le performance calano alla grande.

    Pensa che in MVC ho fatto una PartialView con una Modale Bootstrap per ogni riga. Risultato: non scattano i validatori ed ho dovuto smontare tutto. E poi per numeri piu' alti di righe inoltre la pagina rallenta....

    ______
    Comunque, visto il punto a cui sei arrivato, basta aggiungere delle proprieta' pubbliche nello UC e settarle con i valori.

    Ricordati che, se non mi sbaglio, il Framework è "intelligente" e se setti anche l'ID rigenera tutto durante i postback.

  4. #4
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,857
    Il mio Framework dev'essere stupido perchè mi costringe sempre a dirgli tutto nonostante gli ID :-)
    Sono riuscito a mettere una sola modale nella pagina principale ed anche a settare le proprietà dello UC ivi contenuto a partire dagli UCrep nel repeater... praticamente un trionfo, l'unica cosa che mi infastidisce è quel parent.parent.parent per andare a prendere i controlli a partire dagli UCrep: perchè da me.page non ci arrivo?

    PS. quando ho scritto "articolata" intendevo che il tutto si svolge dentro a una pagina con una multiview, quindi in una view e in un tabpanel che poi contiene il repeater e la modalpopup... ho un campionario di controlli che fa impressione :-) l'uso di una sola modale è "balsamico" per la pulizia della pagina
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  5. #5
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,857
    nel primo post l'avevo scritto male ma è
    pg.FindControl("mioMP")
    e non funzia
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  6. #6
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,886
    dovrebbe essere

    Me.IDRepeater.RigaCorrente.FindControl("IDUserCont rol") per ottenere un Control da castare poi verso la tua classe UC. Poi mi sono perso.


    Comunque, Mac, le pagine dovresti farle piu' semplici. Il repeater con gli ItemTemplate soltanto non era sufficiente ? Basta con gli UserControl.

    Pensa se fra 3 anni qualcuno capita sul tuo codice......

  7. #7
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,857
    Quote Originariamente inviata da djciko Visualizza il messaggio
    dovrebbe essere
    Me.IDRepeater.RigaCorrente.FindControl("IDUserCont rol") per ottenere un Control da castare poi verso la tua classe UC. Poi mi sono perso.
    No è il contrario, dallo UserControl nel repeater vorrei selezionare il modalpopup che è fuori (cosa che riesco a fare coi parentparentparent ma mi pare un modo beduino)

    Quote Originariamente inviata da djciko Visualizza il messaggio
    Pensa se fra 3 anni qualcuno capita sul tuo codice......
    Se gli chiedono di metterci le mani probabilmente mi verrà a cercare.... armato :-)
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  8. #8
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,886
    Quote Originariamente inviata da supermac Visualizza il messaggio
    No è il contrario, dallo UserControl nel repeater vorrei selezionare il modalpopup che è fuori (cosa che riesco a fare coi parentparentparent ma mi pare un modo beduino)
    ok, per farlo devi passare per tutti i componenti in cui è annidata la modalPopup, ma parent3 funziona e lascialo cosi'.
    l'alternativa e' una serie di FindControl oppure jQuery

  9. #9
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,857
    In realtà non è così impossibile, è che c'è una montagna di controlli e di eventi da gestire ma la struttura della mia pagina (semplificata) è questa
    codice:
        <asp:MultiView ID="MultiView1" runat="server" ActiveViewIndex="0">
            <asp:View ID="Normalview" runat="server">
    
                <h1>Nuovo ordine</h1>
                <-- dati di testata, selezione cliente & Co. -->
    
    
                <!-- corpo : compare solo dopo aver completato i dati di testata-->
                <asp:PlaceHolder ID="phCorpo" runat="server" Visible="false">
                              
                    <ajaxToolkit:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="0" AutoPostBack="true">
                        <ajaxToolkit:TabPanel runat="server" ID="inserimento">
                            <ContentTemplate>
                                <-- area dei filtri di selezione degli articoli -->
                                
                                <!-- catalogo articoli -->
                                    <asp:Repeater runat="server" ID="listaprod" OnItemDataBound="listaprod_ItemDataBound">
                                        <ItemTemplate>
                                            <pl1:ProdottoLight runat="server" ID="UCrep" />
                                        </ItemTemplate>
                                    </asp:Repeater>
                                </div>
                                <!-- paginatore del repeater -->
    
                                <!-- modalpopup per inserimento articolo in carrello -->
                                <ajaxToolkit:ModalPopupExtender ID="ModalPopupExtender1" runat="server" PopupControlID="mioMP" ></ajaxToolkit:ModalPopupExtender>
                                <asp:Panel ID="mioMP" runat="server" align="center" Style="display: none; z-index: 490 !important;" CssClass="col-xs-12 col-sm-10">
                                     <uc1:ProdottoInLista runat="server" ID="prod2cart" />
                                </asp:Panel>
                                <!-- fine popup -->
                            </ContentTemplate>
                        </ajaxToolkit:TabPanel>
    
    
                        <ajaxToolkit:TabPanel runat="server" ID="riepilogo">
                            <ContentTemplate>
                                <!--riepilogo righe articoli in carrello-->
                            </ContentTemplate>
                        </ajaxToolkit:TabPanel>
    
                        <ajaxToolkit:TabPanel runat="server" ID="import" >
                            <ContentTemplate>
                                <!--import righe carrello con caricamento file csv -->            
                            </ContentTemplate>
                        </ajaxToolkit:TabPanel>
    
                        <ajaxToolkit:TabPanel runat="server" ID="comunica">
                            <ContentTemplate>                
                                <!-- invio via mail con allegato zip dell'ordine in pdf + immagini dei prodotti in carrello -->
                            </ContentTemplate>
                        </ajaxToolkit:TabPanel>
    
                        <ajaxToolkit:TabPanel runat="server" ID="annotazioni">
                            <ContentTemplate>                
                                <!-- inserimento annotazioni per scambio info agente/azienda -->                
                            </ContentTemplate>
                        </ajaxToolkit:TabPanel>
                    </ajaxToolkit:TabContainer>
    
                </asp:PlaceHolder>
    
            </asp:View>
    
            <asp:View ID="AddDest" runat="server">
                <!-- view per l'inserimento "al volo" di una destinazione merce che viene memorizzata, agganciata all'anagrafica cliente, e inserita nei dati di testata    
            </asp:View>
        </asp:MultiView>
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  10. #10
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,857
    azz, problemino: quando un controllo nel modalpopup fa un postback mi si chiude il modalpopup... da un'altra parte mi pareva di averlo risolto con una variabile session... ora vedo se lo trovo
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

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 © 2024 vBulletin Solutions, Inc. All rights reserved.